【思路】a^b = c等价于a^c = b  所以枚举a和c,而a和c全部枚举肯定TLE,所以高效算法:通过c是a的约数这个关系来枚举会减小循环,必须要将c放在循环外面,因为c的情况比较少。其实本题就是要求:c=a-b(规律),c=a^b

以下是高神的AC代码,很好很强大:

#include <cstdio>
#include <iostream>
#include <cmath>
#include <string>
using namespace std;
#define maxn 30000000
int s[30000000+10];
int init(){int sum = 0;for(int c = 1; c <= maxn/2; c++){  //类似素数筛选法for(int a = c+c ; a <= maxn ; a += c){int b = a - c;if((a ^ b) == c)s[a]++;           // a  所满足的所有可能。 因为 a < n  在求 n的时候 要把前n项全部加起来}}for(int i = 2; i <= maxn; i++)  //前i个一共有多少,真是巧妙s[i] += s[i-1];
}
int main (){int counts = 0,num;scanf("%d",&num);init();while(num--){int n;scanf("%d",&n);printf("Case %d: %d\n",++counts,s[n]);}return 0;
}

UVA-12716 - GCD XOR相关推荐

  1. UVA 12716 GCD XOR(数论+枚举+打表)

     题意:给你一个N,让你求有多少组A,B,  满足1<= B <= A <= N, 且 gcd(A,B) = A XOR B. 思路:首先我们能够得出两个结论: A-B > ...

  2. UVA12716 LA6657 GCD XOR【GCD+位运算+前缀和】

    Given an integer N, find how many pairs (A, B) are there such that: gcd(A, B) = A xor B where 1 ≤ B ...

  3. #题目:GCD XOR UVA - 12716

    题目描述 Given an integer N, find how many pairs (A, B) are there such that: gcd(A, B) = A xor B where 1 ...

  4. GCD XOR UVA - 12716 ——筛法建立约数表+xor运算+数学规律

    Think: 1埃式筛法思想建立约数表 2初始打表寻找运算的数学规律 3xor运算(不带进位的二进制加法) 运算法则 1. a ⊕ a = 0 2. a ⊕ b = b ⊕ a 3. a ⊕b ⊕ c ...

  5. uvalive 6657 GCD XOR

    //感觉太长时间没做题 好多基本的能力都丧失了(>_<) 首先大概是这样的,因为gcd(a,b)=c,所以a,b都是c的倍数,所以我们依次枚举a的值为2c 3c 4c......,a xo ...

  6. UVa 11388 - GCD LCM

    题目大意:给出两个数的最大公约数G和最小公倍数L,求出这两个数. 根据a*b = GCD * LCM,然后枚举判断就好了. 1 #include <cstdio> 2 typedef un ...

  7. UVa 11889 (GCD) Benefit

    好吧,被大白书上的入门题给卡了.=_=|| 已知LCM(A, B) = C,已知A和C,求最小的B 一开始我想当然地以为B = C / A,后来发现这时候的B不一定满足gcd(A, B) = 1 A要 ...

  8. UVALive 6657 GCD XOR

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=48739 题解:打表可知,gcd(a,b)==a^b时,假设a^b= ...

  9. LA 6657 GCD XOR

    题目https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_pro ...

  10. UVALive 6657 GCD XOR 异或,因子筛法

    对每个数字,求他的因子. 由于i^j  >=  i-j  ,而目前需要得到的是公约数k,因此已知i,已知k,j只能等于i-k,然后判断 i^j == k 是否成立. 当然我不是这么过的.我算出i ...

最新文章

  1. Android之Fragment使用简介
  2. 巴特沃斯滤波器应用场合_巴特沃斯数字低通滤波器设计及应用
  3. valid, satisfiable, unsatisfiable的例子
  4. Java历程-初学篇 Day05选择结构(2)
  5. 1.Rabbitmq学习记录《本质介绍,协议AMQP分析》
  6. python芙蓉数用abs函数_Python调用OpenCV阈值化
  7. 判断数据类型的几种方法
  8. 油猴GM_download使用及下载扩展名flac,油猴脚本修改下载扩展名
  9. 十五届恩智浦智能车杀青
  10. VMware Workstation 虚拟机安装windows 10 系统步骤
  11. 飞浆AI studio人工智能课程学习(2)-Prompt优化思路|十个技巧高效优化Prompt|迭代法|Trick法|通用法|工具辅助
  12. 网络和IP地址计算器
  13. 是谁在我的心里打了个结(七)投标书
  14. VS2005 C++ 项目怎样添加“依赖”、“库目录”和“包含目录”
  15. getchar();吸收回车符
  16. 360新闻api,通过关键字检索最新新闻动态
  17. java 在数组末尾添加元素和在任意位置删除元素
  18. 支持python的量化交易平台
  19. cv2报错:Problematic frame:  C  [cv2.cpython-36m-x86_64-linux-gnu.so+0xcd0696]
  20. libsodium引用报错FileNotFoundError: [Errno 2] No such file or directory: b‘liblibsodium.a‘

热门文章

  1. 8.解析Kafka中的 Topic 和 Partition
  2. idea windows快捷键
  3. 有感于新闻联播对威客(witkey)的报道
  4. 免费的内网穿透(钉钉)
  5. 未来五年最有前景的编程语言是什么?
  6. Java 照片墙_js实现照片墙功能实例
  7. css3动画照片墙,css3照片墙动态效果
  8. Centos 7.2内核版本升级(无外网)
  9. mysql备份数据库怎么还原数据库文件_mysql如何备份和还原数据库文件
  10. str在java中什么意思_Java中String的理解