公约数
来源:互联网 发布:中韩农产品贸易数据 编辑:程序博客网 时间:2024/06/04 22:58
题目大意
求n以内多少对a和b满足(a,b)=a xor b
结论
a=b不可能合法
假设a>b
观察(a,b)<=a-b
a xor b>=a-b
于是要符合条件,必须a-b=(a,b)=a xor b=c
那么a/c=b/c+1
枚举b/c,然后检验倍数是否合法。
n log n
#include<cstdio> #include<algorithm>#define fo(i,a,b) for(i=a;i<=b;i++)using namespace std;int i,j,k,l,t,n,m,ans;int main(){ scanf("%d",&n); fo(i,1,n-1){ j=i+1; if ((i^j)==1){ ans++; fo(k,2,n/j) if (((i*k)^(j*k))==k) ans++; } } printf("%d\n",ans);}
0 0
- 公约数
- 公约数
- 公约数
- 公约数
- 公约数
- 公约数
- 公约数
- 公约数
- 公约数
- 公约数
- 公约数
- 公约数公倍数
- 公约数问题
- 公约数4
- 公约数公倍数
- 公约数 公倍数
- 求公约数。
- 公约数公倍数
- IO
- 省身
- 生成学习算法之朴素贝叶斯算法
- [组合] BZOJ 2916 [Poi1997]Monochromatic Triangles
- 数据结构实验之链表二:逆序建立链表
- 公约数
- 历史上的重大软件BUG启示录 第2篇---心脏滴血
- HDU 1198 Farm Irrigation (dfs / 并查集)
- HDU 1532(网络流之最大流)
- qt学习 第七天 第九天
- 读书笔记四
- 时间片轮转调度算法
- 基础常用api
- Photoshop文字特效——栅格层叠效果文字