UVA
来源:互联网 发布:java病毒代码 编辑:程序博客网 时间:2024/06/05 16:56
题意:给出范围n,在[1,n]中,有多少对a,b(a>b),gcd(a,b)=a xor b;(xor为异或);
思路:因为若a xor b=c,那么a xor c=b,又因为c=gcd(a,b),所以只需要枚举所有的c,再枚举c的所有倍数a,判断是否a xor c=b,gcd(a,b)=c;
#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<map>#include<stack>#include<queue>#include<algorithm>#include<set>#include<vector>#include<cmath>#define lmid l,m,rt<<1#define rmid m+1,r,rt<<1|1#define LL long long#define rl r-l+1using namespace std;const int maxn=30000000+5;int s[maxn];void init(){ for(int c=1;c<maxn/2;c++){ for(int a=2*c;a<maxn;a+=c){ int b=a-c; if((a^b)==c) s[a]++; } } for(int i=2;i<maxn;i++) s[i]+=s[i-1];}int main(){ init(); int t; scanf("%d",&t); for(int ca=1;ca<=t;ca++){ int n; scanf("%d",&n); printf("Case %d: ",ca); cout<<s[n]<<endl; }}
阅读全文
0 0
- uva
- UVA
- UVA
- UVA
- uva
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- L1,L2 正则化与过拟合问题
- Win10 配置Docker -- 运行MySQL实例篇
- Windows10上再安装个Linux系统
- 213. House Robber II
- Linux命令之head,tail
- UVA
- 算法设计课作业系列3——Different Ways to Add Parentheses
- 使用数组实现堆栈
- jdk java 多边形判断 工具类 工程
- 51Nod 1011 最大公约数GCD
- UVa-11400 Lighting System Design
- 欢迎使用CSDN-markdown编辑器
- CF #425 DIV2 D. Misha, Grisha and Underground(LCA)
- 动态库的链接和链接选项-L,-rpath-link,-rpath