UVa 12716 - GCD XOR(筛选+规律)
2015-07-27 21:10
441 查看
输入一个数n,(1≤n≤30000000)n,(1≤n≤30000000),输出有多少对整数满足1≤a≤b≤n,gcd(a,b)=a⨁b1≤a≤b≤n,gcd(a,b)=a \bigoplus b。
设c=a⨁bc=a \bigoplus b,则a⨁c=ba \bigoplus c=b。找规律可得,当满足条件时,c=a−bc=a-b。
因此,枚举c、ac、a,对每一对验证c=a⨁bc=a \bigoplus b即可。时间复杂度O(nlogn)O(nlogn)。
设c=a⨁bc=a \bigoplus b,则a⨁c=ba \bigoplus c=b。找规律可得,当满足条件时,c=a−bc=a-b。
因此,枚举c、ac、a,对每一对验证c=a⨁bc=a \bigoplus b即可。时间复杂度O(nlogn)O(nlogn)。
#include<cstdio> using namespace std; const int maxn=30000010; int a[maxn]; void init(){ int k=maxn/2; for(int i=1;i<k;++i) for(int j=i+i;j<maxn;j+=i) if(i==(j^(j-i))) ++a[j]; for(int i=1;i<maxn;++i) a[i]+=a[i-1]; return; } int main(){ init(); int t,tt=0;scanf("%d",&t); while(t--){ int n;scanf("%d",&n); printf("Case %d: %d\n",++tt,a ); } return 0; }
相关文章推荐
- poj 2594 Treasure Exploration 二分图匹配
- eclipse完全支持jsp页面下HTML/JS/CSS智能提示
- 常用集合类
- nyoj-02 括号配对问题
- deep learning入门教材
- java内部类,异常--09
- android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )
- 搭建SVN
- QPropertyAnimation动画的控件看不到以及构造函数的属性如何来
- BZOJ 3122 SDOI2013 随机数发生器 数论 EXBSGS
- 可变参数:参数可变
- Collections:集合工具类
- Eclipse和debug的一些快捷键
- Linux命令行之文件操作
- 面试题24_二叉搜索树的后序遍历序列
- scrapy爬虫成长日记之创建工程-抽取数据-保存为json格式的数据
- mysql中Access denied for user 'root'@'localhost' (using password:YES)
- Flip Game(Poj1753)
- 初学FPGA, 怎么从硬件上理解?
- IOS Quartz 各种绘制图形用法---实现画图片、写文字、画线、椭圆、矩形、棱形等