B. Magical Calendar(規律)

 

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章