【题解】整点

题目描述

  在一条数轴上,从0至N共有N+1个整点,分别是:0,1,2,3,4,...N。奶牛A要选择其中的一个整点作为它的家,奶牛B也要选择其中的一个整点作为它的家,但它们不能选择相同的整点。为了方便联络,它们的家的距离不能超过D。问有多少种不同的方案?答案模10007。

输入格式

  一行,两个整数,N和D。    1 <= N <= 10^9。 1 <= D <=1000。

输出格式

  一个整数。

输入样例

3  2

输出样例

10

题解

  直接推得答案为:$d+d+d+...+d$($n-d+1$个$d$)与$1+2+3+...+(d-3)+(d-2)+(d-1)$的和,即$d(n-d+1) + \frac {d (d - 1)} {2}$。

#include <iostream>

using namespace std;

long long n, d;

int main()
{
    cin >> n >> d;
    if(n < d) return cout << 0, 0; 
    cout << ((n - d + 1) * d + d * (d - 1) / 2) * 2 % 10007;
    return 0;
}
参考程序

猜你喜欢

转载自www.cnblogs.com/kcn999/p/10742329.html