Codeforces Round #619 (Div. 2)C(构造,容斥)

Posted ldudxy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces Round #619 (Div. 2)C(构造,容斥)相关的知识,希望对你有一定的参考价值。

 1 #define HAVE_STRUCT_TIMESPEC
 2 #include<bits/stdc++.h>
 3 using namespace std;
 4 int main(){
 5     ios::sync_with_stdio(false);
 6     cin.tie(NULL);
 7     cout.tie(NULL);
 8     int t;
 9     cin>>t;
10     while(t--){
11         long long n,m;
12         cin>>n>>m;
13         long long ans=0;
14         ans=(n*(n+1))>>1;//总方案数(无论当中是否存在1)
15         long long temp=n-m;//0的个数
16         long long x=temp/(1+m);//将0均分(猜测这样答案最大)
17         long long y=temp%(1+m);//有y段会多余1个0,长度为x+1
18         long long z=1+m-y;//长度为x的段数
19         ans-=z*((x+1)*x/2)+y*((x+1)*(x+2)/2);//总方案数减去中间全是0的字串数量
20         cout<<ans<<"
";
21     }
22     return 0;
23 }

 

以上是关于Codeforces Round #619 (Div. 2)C(构造,容斥)的主要内容,如果未能解决你的问题,请参考以下文章

Codeforces Round #619 (Div. 2)

Codeforces Round #619 (Div. 2)C(构造,容斥)

Codeforces Round #619 (Div. 2) 简要题解

Codeforces Round #619 (Div. 2)

Codeforces Round #619 (Div. 2)/CF1301 思维+贪心+模拟+构造+二维ST表

Codeforces Round #619 (Div. 2) C. Ayoub's function