有个人想要规划日程,给出 n 代表她所规划的一周有几天,r 代表一周内她要至多学习(1~r)天,所有的天数必须构成连通块,问有几种规划方式
其实思路想一下,当 r==2 时,可以从第一周的 第一/二 天开始。
r == 3时,可以从第一周的 第 1/2/3 天开始 ,这样就是让我们求前 r 项和
但是要注意的是当 r >=n 时,出现的以下两种情况
ll go(ll r)
{
if(r&1) return (r+1)/2*r;
else return r/2*(r+1);
}
int main()
{
IOS;
rush(){
ll n,r;
cin>>n>>r;
ll ans;
if(r>=n){
r=n-1;
ans=go(r)+1; //当等于 n 时,第一周全涂为一种情况
}
else ans=go(r);
cout<<ans<<endl;
}
PAUSE;
return 0;
}