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

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

题意:找和m互质的第k个数。

容斥原理可以快速求出某个范围内,和m不互斥的个数,显然可以求出某个范围内互质的个数,所以只要取一个很大的end,二分即可,写二分的时候开始按普通的写的,发现不对,要找第一个出现的数才是结果,取end和容斥的模版敲错一点,查数据查出了错,4Y。

1 #include 
2 #include
3 #include
4 using namespace std; 5 #define ll __int64 6 int prim[1001]; 7 ll judge(ll x,int len)//容斥求出1-x范围内和m的互质的个数 8 { 9 int i,j,cat;10 ll tem,ans = 0;11 for(i = 1;i < 1<
<= len-1;j ++)16 {17 if(i&(1<
<= num;i ++)43 {44 if(m%i == 0)45 {46 prim[len++] = i;47 while(m%i == 0)48 m = m/i;49 }50 if(m == 1) break;51 }52 if(m != 1) prim[len++] = m;53 str = 1;54 end = 1e13;//开始开小了55 while(str < end)56 {57 mid = (str+end)/2;58 ll key = judge(mid,len);59 if(key < k)60 str = mid+1;61 else62 end = mid;63 }64 printf("%I64d\n",str);65 }66 return 0;67 }

 

 

转载于:https://www.cnblogs.com/naix-x/archive/2012/10/06/2713117.html

你可能感兴趣的文章
musql 单表查询
查看>>
【Git】标签管理
查看>>
[HNOI2017]大佬
查看>>
『重构--改善既有代码的设计』读书笔记----Hide Delegate
查看>>
1、libgdx简单介绍
查看>>
Swift iOS tableView static cell动态计算高度
查看>>
Windows Phone开发(24):启动器与选择器之发送短信 转:http://blog.csdn.net/tcjiaan/article/details/7404643...
查看>>
工厂模式(headfirst)笔记
查看>>
Hibernate初探之单表映射——创建持久化类
查看>>
File类
查看>>
有 n个人围成一圈,顺序排号。从第一个人开始报数(从 1 到 3 报数),凡报到 3 的人退出圈子, 问最后留下的是原来第几号的那位...
查看>>
mui框架通讯录检索
查看>>
正则表达式全集
查看>>
vuex中的dispatch和commit
查看>>
mybatis实战教程二:多对一关联查询(一对多)
查看>>
NodeMCU文档中文翻译 3 构建固件
查看>>
前端学习☞jquery
查看>>
10分钟搞懂树状数组
查看>>
关于C#的静态类和静态构造函数
查看>>
C#不同窗体间通信,数据传递
查看>>