题解 AT5209 【[ABC163D] Sum of Large Numbers】
第一次过灰题,庆祝庆祝
前埔知识:等差数列求和公式
推导(别人写的):https://wenku.baidu.com/view/0c01681559eef8c75fbfb369.html
所以这个题目主要是要找规律和等差数列求和公式
规律第一篇题解已经找出来了,大的减去小的加1
所以对于每个而言,取的和不同的方法有
接下来首项末项项数求出来,简单AC,等差数列
code:
#include <iostream>
using namespace std;
const int Mod = 1000000007;
int main()
{
long long n, k, ans = 0;
cin >> n >> k;
for(register long long i = k; i <= n + 1; i++)
{
/*等差数列求和公式
大
n - i + 1
n
i
2
小
0
i - 1
i
2
*/
ans = (ans + (n - i + 1 + n) * i / 2 - ((i - 1) * i) / 2 + 1) % Mod;
}
cout << ans << endl;
return 0;
}

浙公网安备 33010602011771号