zoukankan      html  css  js  c++  java
  • arc102a

    arc102a

    大意

    给定 (N,K) ,求满足 (Kmid a+b ; Kmid b+c ; Kmid a+c)(a,b,cleq N) 的三元组 ((a,b,c)) 的个数。

    所有数都为正整数。

    思路

    显然,当三元组 ((a,b,c)) 为一组解, ((a+xK,b+yK,c+zK)) 也为一组解。

    实际上,若 (a,b,c) 都为正整数,且 ((a+xK,b+yK,c+zK)) 为一组解,则 ((a,b,c)) 也一定为一组解。

    将式子代入条件容易得到。

    所以只需要找出所有小于等于 (K) 的解,其他的通过组合递推就能得到。

    等于 (K) 时,显然成立。

    小于 (K) 时,显然要有 (a+b=b+c=c+a=K)

    此时若 (K) 是奇数显然无解,当 (K) 是偶数时,能得到一组解 ((dfrac{K}{2},dfrac{K}{2},dfrac{K}{2}))

    从小于等于 (K) 的解出发考虑,因为 (a,b,c) 的值在加 (K) 的过程中互不影响,所以运用乘法原理即可。

    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    #include <cmath>
    using namespace std;
    
    #define ll long long
    #define ull unsigned long long
    #define cint const int&
    #define Pi acos(-1)
    
    ull n, k;
    
    ll p(ll x) {return x*x*x;}
    
    int main() {
        cin >> n >> k;
        if(k%2) {
            cout << p(n/k);
        } else {
            cout << p(n/k) + p((n/(k>>1)+1)>>1);
        }
        return 0;
    }
    
  • 相关阅读:
    中心极限定理
    BCEloss和交叉熵损失的区别
    postgresql的python接口
    DataGrip 2020.1 安装与激活方法
    区块链技术
    TensorRT推理加速推断并提高吞吐量
    纯视觉取代slam做路径规划及避障的思路
    DL重新回顾总结
    OpenCV 轮廓方向
    OpenCV 低通滤波(可设置频率)
  • 原文地址:https://www.cnblogs.com/ullio/p/13996758.html
Copyright © 2011-2022 走看看