首页 > 其他 > 详细

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

时间:2020-02-14 11:50:00      阅读:69      评论:0      收藏:0      [点我收藏+]

比较好的题...

考虑一下正着来....十分复杂

不如考虑一下补集转换

有1=====全部-全0

考虑怎么可以把全0最小

发现全0最小时,0都是很小...(出现大的化一次增加很多)

于是保险一点,全0区间要尽可能的平均

于是就有了...答案

技术分享图片
#include<bits/stdc++.h>
using namespace std;

int T;
long long n,m,len,num1,num2,ans;

int main(){
    cin>>T;
    while(T--){
        cin>>n>>m;
        len=(n-m)/(m+1);
        num1=(n-m-len*(m+1));
        num2=m+1-num1;
        ans=n*(n-1)-len*(len+1)*num1-len*(len-1)*num2;
        ans/=2;
        cout<<ans+m<<endl;
    }
}
View Code

我太菜了....

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

原文:https://www.cnblogs.com/shatianming/p/12306629.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!