JZOJ4714公约数 找规律
来源:互联网 发布:北京软件测试精品课程 编辑:程序博客网 时间:2024/04/28 23:08
题意:给你一个数N,问你在1-n的范围内有对少对数(x,y)保证gcd(x,y)=a xor y;
一开始看到的时候以为要拆位,想想觉得不对。然后把1-5之间的所有的对数列出来。。就会发现一个很好玩的性质:
如果 a xor b = gcd(a, b) = c 则 c = a - b
那不就变得很简单了吗,之间枚举a和c就可以了,结果比赛的时候傻逼了,没看见n<=10^7,因为直接上了gcd导致时间复杂度退化为O(NLOGN^2),被卡到60分。。醉了。。
代码:
#include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>#include<algorithm>#include<map>#include<vector>using namespace std;#define MOD 1000000007#define mid(a,b)=a+b>>1#define maxn 10000000#define ll long longll n;ll ans[maxn];int main() { int i,j; scanf("%d",&n); for (i=1;i<=n>>1;i++) { int u=i<<1; while (u<=n) { int v=u-i; if ((u^v)==i) { ans[u]++; } u+=i; } } for (i=1;i<=n;i++) ans[i]+=ans[i-1]; printf( "%lld\n",ans[n]) ; return 0;}
0 0
- JZOJ4714公约数 找规律
- JZOJ4714公约数
- 【JZOJ4714】公约数
- Jzoj4714 公约数
- 【jzoj4714】【公约数】【数论】
- 找规律
- 找规律!
- 找规律
- 找规律,
- 找规律
- 找规律
- 找规律
- 找规律
- 找规律
- 找规律
- 找规律
- 找规律
- 找规律
- Android 项目中嵌入 ReactNative 模块
- Android 之打造QQ 侧滑菜单
- Caffe卷积原理
- 关于堆和栈
- GitHub 优秀的 Android 开源项目
- JZOJ4714公约数 找规律
- Qt中int转换成QString
- 木雨音乐 项目开发(六)音乐播放界面PlayActivity实现
- 使用Android Studio导入源码
- 第二十一条:函数对象表示策略
- 【JZOJ4715】树上路径
- Mac上搭建php环境
- 关于socket的整理
- 利用分拣存储实现1:N