AtCoder Beginner Contest 163 D.Sum of Large Numbers

AtCoder Beginner Contest 163 D.Sum of Large Numbers

题目链接

在这里插入图片描述
简单的找规律题~
我们取 k k 个数时,不难发现,最小的取值就是 k k 个数的最小取值 m i n min ,最大的取值就是 k k 个数的最大取值 m a x max ,而取值个数就是 m a x m i n + 1 max-min+1 ,遍历一遍更新答案即可,AC代码如下:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod=1e9+7;
int main(){
    ll n,k;
    cin>>n>>k;
    ll ans=0;
    for(ll i=k;i<=n+1;i++){
        ll l=i*(i-1)/2;
        ll r=(n+n-i+1)*i/2;
        ans=(ans+r-l+1)%mod;
    }
    cout<<ans;
    return 0;
}
发布了479 篇原创文章 · 获赞 38 · 访问量 18万+

猜你喜欢

转载自blog.csdn.net/qq_43765333/article/details/105628858