zoukankan      html  css  js  c++  java
  • AtCoder Regular Contest 102

    作为一个大蒟蒻,我就只有时间写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<<'
    ';
    12 }
    代码
  • 相关阅读:
    information_schema
    面包屑路径导航
    mysql5.7.26安装
    菜单权限作为父权限
    权限控制到按钮
    二级菜单
    留言板和jq轮播图
    M商城
    表单
    w3c
  • 原文地址:https://www.cnblogs.com/mimiorz/p/9571862.html
Copyright © 2011-2022 走看看