有個人想要規劃日程,給出 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;
}