POJ 2773 Happy 2006 (容斥原理)
题目是给出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 <iostream> #include <cstdio> #include <cmath> #include <vector> #include <cstring> #include <algorithm> #include <string> #include <set> #include <functional> #include <numeric> #include <sstream> #include <stack> #include <map> #include <queue>#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<<cnt; ++i) {bit = 0; sum = 1;for(j = 0; j < cnt; ++j) {if(i&(1<<j)) {bit++;sum *= p[j];}}if(bit&1) res -= n/sum;else res += n/sum;}return n + res; }int main() {//Read();int m, k;while(cin >> 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; }
转载于:https://www.cnblogs.com/vongang/archive/2012/11/03/2752326.html
POJ 2773 Happy 2006 (容斥原理)相关推荐
- 【疑】poj 2773 Happy 2006 互素问题(★★☆☆☆)
http://poj.org/problem?id=2773 题意:给定一个正整数,求与其互素的第K个整数. 在这里要说一下什么叫互素:如果两个正整数X和Y的最大公约数为1,那么就说X与Y互素. 这个 ...
- POJ - 2773 Happy 2006(欧几里得+构造)
题目链接:点击查看 题目大意:给出两个数n和k,求与从1开始,与n互质的第k个数是多少 题目分析:这个题目给的k很大,所以不能草率模拟,我们可以稍微构造一下: 因为GCD(a,b)=GCD(b mod ...
- POJ 2773 欧几里得
思路: 若a和b互素的话,则b*t+a和b一定互素 用周期性做就好了 //By SiriusRen #include <cstdio> using namespace std; int s ...
- POJ 1091 跳蚤 【容斥原理】+模板
Description Z城市居住着很多只跳蚤.在Z城市周六生活频道有一个娱乐节目.一只跳蚤将被请上一个高空钢丝的正中央.钢丝很长,可以看作是无限长.节目主持人会给该跳蚤发一张卡片.卡片上写有N+1个 ...
- php header apk,php常用的header头
/** * php常用的header头设置... */ header('HTTP/1.1 200 OK'); // ok 正常访问 header('HTTP/1.1 404 Not Found'); ...
- 信息学竞赛中的数学知识 --- 容斥原理
C++基础数论-----容斥原理 C++基础数论-----容斥原理_C2020lax的博客-CSDN博客_容斥原理c++ C++数论容斥原理----无关的元素 C++数论容斥原理----无关的元素 - ...
- ICPC训练联盟2021寒假冬令营(9)_2021.01.29_笔记
试题链接 点我进入代码提交OJ 学习笔记 - 数论与组合分析入门 数论的编程实验 • 3.1素数运算的实验范例 • 3.2求解不定方程和同余方程的实验范例 • 3.3 特殊的同余式 • 3.4 积性函 ...
- POJ - 1091 跳蚤(容斥原理+数论)
题目链接:点击查看 题目大意:中文题意,不多赘述 题目分析:根据题目的意思,其实只需要让所有数的最大公约数为1就可以满足条件,好像是用到了欧几里得的一些知识,奈何我的数论比较菜,也不会证明,就直接用网 ...
- (精)【ACM刷题之路】POJ题目详细多角度分类及推荐题目
POJ上的一些水题(可用来练手和增加自信) (poj3299,poj2159,poj2739,poj1083,poj2262,poj1503,poj3006,poj2255,poj3094) 初期: ...
最新文章
- 中国SaaS死或生之七:死生非大事,利益最相关
- 浏览器跨域访问解决方案
- PHP array_pop()函数与示例
- android黑屏日志_Android启动页黑屏的解决方案
- 为什么中小企业选择 SAP Business One?
- 计算机桌面为什么没有语言栏了,电脑语言栏不见了有哪些解决方法
- ping可以访问百度ip但不能访问百度域名|couldn't resolve host api.weixin.qq.com
- Excel写批量代码(一)
- 小米游戏本bios更新_小米游戏本 | 笔记本Air 13.3″ 四核 | 笔记本Air 12.5″ | 笔记本Pro 15.6″BIOS设置...
- python label显示图片_Python3 tkinter基础 Label imag显示图片
- NVIDIA安装程序失败(组件全部未安装)
- word 2013 尾注后继续添加正文的方法
- 张亚勤退休百度:一个耐人寻味的微笑
- 静态html使用js发送邮件,科技常识:html实现邮箱发送邮件_js发送邮件至指定邮箱功能...
- 嵌入式菜单LCD简单版
- 计算机柜里 do dl代表什么,dl是什么意思(你知道AI、ML和DL分别代表什么吗?)...
- 随时待命的初学者指南
- 河南对口计算机本科学校有哪些,河南计算机对口升学有哪些学校
- Python-批处理调整音频文件的音量大小
- 微信js sdk 授权上传头像下载代码片段和注意事项
热门文章
- 齐齐哈尔计算机二级,2020齐齐哈尔市计算机二级报名时间|网上报名入口【8月20日9时开通】...
- SVM算法及OpenCV源码分析
- java当前时间查询,Java实现查询记录的时间相对于当前时间
- python基于水色图像的水质评价_零基础学习Python的学习路线及教程
- C语言——指针篇(二)指针和数组之内存分配和初始化
- 远程访问服务器并登录LPAR,MySQL设置远程连接服务器
- Dediprog EM100Pro-G2 CmdLine教程
- 时隔两年,PuTTY 喜提新版
- 百度AI城市又搞事情!一天三场签约 上海市民要全面迎来AI了
- 从零开始编写自己的C#框架(7)——需求分析