码迷,mamicode.com
首页 > 其他好文 > 详细

AtCoder Regular Contest 102

时间:2018-09-01 23:50:42      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:color   target   style   closed   img   pow   lap   cli   ==   

作为一个大蒟蒻,我就只有时间写c了QAQ

题目链接

题意:

给n,k,求有多少个3元组(a,b,c),满足a+b,b+c,c+a都是k的倍数(n,k<=2e5,1<=a,b,c<=n)

根据题意可以推导:

∵(a+b)%k=0

 (b+c)%k=0       

 (c+a)%k=0

∴[a+b-(b+c)]%k=0

∴(a-c)%k=0

∴(a+c+a-c)%k=0

∴2a%k=0

同理:2b%k=0,2c%k=0

 

分类讨论:

当k为奇数时,显然a,b,c都是k的倍数,答案就是pow(int(n/k),3)

当k为偶数时,a,b,c都是k/2的倍数,但a+b的和不为偶数时,就不符合要求了。

所以a,b,c要么全是奇数,要么全是偶数。

答案就是pow(int(n/(k/2),3)+pow(int((n+k/2)/k,3).

 

技术分享图片
 1 #include<bits/stdc++.h>
 2 ll n,k,p,ans;
 3 int main(){
 4     cin>>n>>k;
 5     p=n/k;
 6     ans=p*p*p;
 7     if(k%2==0){
 8         p=(n+(k/2))/k;
 9         ans+=p*p*p;
10     }
11     cout<<ans<<\n;
12 }
代码

 

AtCoder Regular Contest 102

标签:color   target   style   closed   img   pow   lap   cli   ==   

原文地址:https://www.cnblogs.com/mimiorz/p/9571862.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!