POJ 2773 容斥与二分
来源:互联网 发布:vm12安装mac 编辑:程序博客网 时间:2024/04/27 19:44
#include <cstdio>#include <cstring>const int maxn = 1E6 + 10;int p[maxn], cnt, m, k;void init(){cnt = 0;for (int i = 2; i * i <= m; i++)if (m % i == 0){p[cnt++] = i;while (m % i == 0) {m /= i;}}if (m != 1) p[cnt++] = m;}long long cal(long long n){long long res = 0;for (int i = 1; i < (1 << cnt); i++){long long bit = 0, sum = 1;for (int j = 0; j < cnt; j++)if (i & (1 << j)) bit++, sum *= p[j];res += (bit & 1 ? -1 : 1) * n / sum;}return n + res;}int main(int argc, char const *argv[]){while (~scanf("%d%d", &m, &k)){init();long long l = 1, r = 1LL << 60, mid, tmp;while (r - l > 0){mid = (l + r) >> 1;tmp = cal(mid);if (tmp >= k) r = mid;else l = mid + 1;}printf("%lld\n", l);}return 0;}
求第K个与M互素的数。
数据范围超大,显然二分。
令F(x)为与M互素且小于X的数的总数,则F(x)=X-X/(1个因数) + X/(2个因数) -....;
具体实现可以使用二进制枚举子集来实现。
0 0
- POJ 2773 容斥与二分
- POJ 2773 二分+容斥定理
- POJ 2773 Happy 2006 二分+容斥
- POJ 2773 Happy 2006 (二分+容斥)
- POJ 2773 二分 +容斥原理
- poj 2773 容斥原理+二分
- POJ-2773 欧几里得 + 二分 + 容斥
- poj-2773(数论+容斥原理+二分)
- poj 2773 容斥原理+二分(求与n的第k互质数)
- POJ 2773 Happy 2006 二分+容斥原理
- POJ 2773 Happy 2006 【数论,容斥原理+二分】
- poj 2773 (容斥原理 + 素数分解 + 二分)
- POJ 2773 happy2006 (素因子分解+容斥原理+二分)
- [二分+容斥原理] poj 2773 Happy 2006
- poj 2773 Happy 2006(容斥原理+二分)
- [POJ 2773]Happy 2006(容斥原理+二分查找)
- POJ 2773 Happy 2006 (二分答案+容斥)
- POJ 2773 Happy 2006 (容斥原理+二分)
- UVA_753_A Plug for UNIX
- 传智播客网络营销培训:不用敲代码,一样拿高薪
- jQuery Mobile介绍
- 自定义collectionViewFlowLayout让UICollectionView的item始终优先居左
- git 在客户端的使用笔记
- POJ 2773 容斥与二分
- 第10章 基本内存管理
- vb.net 使用 DIR 遍历文件目录
- 配置struts2 默认欢迎页的几种办法:
- C++实验5-数组分离
- 多线程之GCD入门
- shell变量
- Shiro学习总结(3)——Apache Shiro身份认证
- 阻塞TCP套接字connect超时设置