C. Ayoub's function-1301C-(貪心+數學+組合)

總結

題意:要求構造一個二進制字符串,求最大的連續字符串包含字符1的方案數
正難反易,求最小的連續的字符串只包含字符0的數量,ans減去它即可
m個1可以構造m+1個空隙
用n-m個0去填就完事

signed main()
{
    IOS;
    //file();
    int t;
    cin>>t;
    while(t--)
    {
        int n,m;
        cin>>n>>m;
        int ans=n*(n+1)/2;
        n=n-m;
        m++;
        int a=n/m,b=n%m;
        ans-=a*(a+1)/2*(m-b);
        if(b%m)
            a++;
        ans-=a*(a+1)/2*b;
        cout<<ans<<endl;
    }
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章