zoukankan      html  css  js  c++  java
  • uva12716GCD XOR

    筛法,打表。

    通过打表可知,但gcd(a,b)==a xor b时,a xor b = a-b.

    就是求满足 c = a-b且c = a xor b 的c的个数。

    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    using namespace std;
    const int maxn = 30000000;
    
    int ans[maxn+10];
    int a,b,c,n;
    int T;
    
    void init() {
        int data=maxn>>1;
        memset(ans,0,sizeof(ans));
        for(int c=1;c<=data;c++) 
            for(int a=c*2;a<=maxn;a+=c) {
                b=a-c;
                if((a^b)==c) ans[a]++;
            }
        for(int i=2;i<=maxn;i++) ans[i]+=ans[i-1];
    }
    
    int main() {
        init();
        scanf("%d",&T);
        for(int i=1;i<=T;i++) {
            scanf("%d",&n);
            printf("Case %d: %d
    ",i,ans[n]);
        }
        return 0;
    }
  • 相关阅读:
    解决maven导入坐标太慢问题
    +=的扩展
    JavaScript
    多线程
    异常
    面向对象
    数组
    java内存
    循环语句和递归
    剑指 Offer 30. 包含min函数的栈
  • 原文地址:https://www.cnblogs.com/invoid/p/5573758.html
Copyright © 2011-2022 走看看