博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 2773 Happy 2006 (容斥原理)
阅读量:6537 次
发布时间:2019-06-24

本文共 1634 字,大约阅读时间需要 5 分钟。

  题目是给出m,k。找到跟第k个跟m互素的数是多少。

  构造肯定不行,再加上数据范围,只能二分。思路是二分枚举[1,2^64]范围内所有的数x,找到1到x范围内与m不互素的数的个数y(用容斥原理)。然后用x - y,如果等于k就是结果。

找到1到x范围内与m不互素的数的个数y:这个过程可以先把m分解质因子,记录m所有的质因子。f[i]表示含有i个质因子的数的个数。ans = m - f(1) + f(2) - f(3) ....

ps:这里二分要找满足 == k最左边的数,推了半天发现把二分写错了。。。T_T

 

 

//#pragma comment(linker,"/STACK:327680000,327680000")#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define CL(arr, val) memset(arr, val, sizeof(arr))#define REP(i, n) for((i) = 0; (i) < (n); ++(i))#define FOR(i, l, h) for((i) = (l); (i) <= (h); ++(i))#define FORD(i, h, l) for((i) = (h); (i) >= (l); --(i))#define L(x) (x) << 1#define R(x) (x) << 1 | 1#define MID(l, r) (l + r) >> 1#define Min(x, y) (x) < (y) ? (x) : (y)#define Max(x, y) (x) < (y) ? (y) : (x)#define E(x) (1 << (x))#define iabs(x) (x) < 0 ? -(x) : (x)#define OUT(x) printf("%I64d\n", x)#define Read() freopen("data.in", "r", stdin)#define Write() freopen("data.out", "w", stdout);typedef long long LL;const double eps = 1e-8;const double pi = acos(-1.0);const double inf = ~0u>>2;using namespace std;const int N = 1000010;int p[N], cnt;void init(int m) { 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;}LL cal(LL n) { int i, j, bit; LL res = 0, sum; for(i = 1; i < 1<
> m >> k, !cin.eof()) { init(m); LL l = 1, r = (1LL<<60), mid, tmp; while(r - l > 0) { mid = MID(l, r); tmp = cal(mid); if(tmp >= k) r = mid; else l = mid + 1; } printf("%lld\n", l); } return 0;}

转载地址:http://bjbdo.baihongyu.com/

你可能感兴趣的文章
[观点]微软报告称开源更昂贵
查看>>
一起谈.NET技术,Silverlight 布局(附照片墙示例及源码)
查看>>
艾伟也谈项目管理,PM与工程师&#183;续
查看>>
jsp的开发模式
查看>>
MYSQL之MHA集群
查看>>
Sublime Text3
查看>>
ubuntu 系统应用安装方式
查看>>
BlueStacks安装教程
查看>>
接口测试实践
查看>>
spring setter 注入 property name
查看>>
T检验
查看>>
HDU 1711 Number Sequence(KMP裸题,板子题,有坑点)
查看>>
setAnimationDidStopSelector如何取消
查看>>
我的第一篇博文
查看>>
跟踪索引查询数据explain
查看>>
HDU 3501 Calculation 2------欧拉函数变形
查看>>
MVC 起始页修改 区域
查看>>
Windows上mxnet实战深度学习:Neural Net
查看>>
Java coding style - Part one
查看>>
VM出现该虚拟机正在使用中的提示,让获取所有权限解决办法
查看>>