hdu-3388 Coprime---容斥定理&&DFS版
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=3388
题目大意:
求同时与m,n互质的第k个数是多少!
解题思路:
和HDU-4135类似,将m和n的最小公倍数素数分解。
然后二分答案,每次求出1-mid中与m和n的最小公倍数互质的数目,大于等于k 右区间 = mid - 1
否则 左区间 = mid + 1
注意,这里不用枚举子集的方式写,因为这样对同一部分需要计算多次lcm,用DFS写不会超时。
注意特判,当n=1且m=1,答案就是k。
注意,这里是;两者都为1的时候特判,不是一者为1的时候特判。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
set<ll>c;
void init(ll n)//n质因子分解
{
for(ll i = ; i * i <= n; i++)
{
if(n % i == )
{
c.insert(i);
while(n % i == )n /= i;
}
}
if(n != )c.insert(n);
} ll ans, tot;
ll a[];
void dfs(ll d, ll t, ll s, ll n)
{
if(d == tot)
{
if(t&)ans -= n / s;
else ans += n / s;
return;
}
dfs(d + , t, s, n);
dfs(d + , t + , s * a[d], n);
} const ll INF = 0x3f3f3f3f3f3f3f3f;
int main()
{
ll T, m, n, k, cases = ;
cin >> T;
while(T--)
{
c.clear();
scanf("%lld%lld%lld", &m, &n, &k);
if(m == && n == )
{
printf("Case %lld: %lld\n", ++cases, k);
continue;
}
init(m);
init(n);
tot = ;
for(set<ll>::iterator it = c.begin(); it != c.end(); it++)
a[tot++] = *it;
ll l = , r = INF, answer;
while(l <= r)
{
ll mid = l + (r - l) / ;
ans = ;
dfs(, , , mid);
if(ans >= k)
answer = mid, r = mid - ;
else l = mid + ;
}
printf("Case %lld: %lld\n", ++cases, answer);
}
return ;
}
hdu-3388 Coprime---容斥定理&&DFS版的更多相关文章
- HDU - 4135 Co-prime 容斥定理
题意:给定区间和n,求区间中与n互素的数的个数, . 思路:利用容斥定理求得先求得区间与n互素的数的个数,设表示区间中与n互素的数的个数, 那么区间中与n互素的数的个数等于.详细分析见求指定区间内与n ...
- HDU 5514 Frogs 容斥定理
Frogs Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5514 De ...
- HDU 4135 Co-prime (容斥+分解质因子)
<题目链接> 题目大意: 给定区间[A,B](1 <= A <= B <= 10 15)和N(1 <=N <= 10 9),求出该区间中与N互质的数的个数. ...
- hdu 5072 Coprime (容斥)
Problem Description There are n people standing in a line. Each of them has a unique id number. Now ...
- hdu 4135 Co-prime(容斥)
Co-prime Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...
- HDU 4135 Co-prime 欧拉+容斥定理
Co-prime Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
- 题解报告:hdu 4135 Co-prime(容斥定理入门)
Problem Description Given a number N, you are asked to count the number of integers between A and B ...
- HDU 1695 GCD 欧拉函数+容斥定理 || 莫比乌斯反演
GCD Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- HDU 1796How many integers can you find(简单容斥定理)
How many integers can you find Time Limit: 12000/5000 MS (Java/Others) Memory Limit: 65536/32768 ...
随机推荐
- Parsing Failure in config.xml: java.lang.IllegalArgumentException: In production mode, it's not allowed to set a clear text value to the property
Step1). in your "setDomainEnv.sh" script set the "PRODUCTION_MODE=false" or use ...
- Hibernate项目环境搭建
1.首先在eclipse里面新建一个Java工程. 2.在数据库中新建一个数据库(无需创建表,有Hibernate生成). 3.在项目中导入Hibernate所依赖的jar包,该jar包可以在此下载: ...
- pyhon-爬虫实战抓取豆瓣top250到mysql
采集地址https://movie.douban.com/top250 一.创建mysql数据库 CREATE TABLE `t_doubantop` ( `id` int(11) unsigned ...
- Python-常用模块及简单的案列
1.模块 函数的优点之一,就是可以使用函数将代码块与主程序分离,通过给函数指定一个描述性的名称,并将函数存储在被称为模块的独立文件中,再将模块导入主程序中,通过import语句允许在当前运行的程序 ...
- tomcat 修改 编码
<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" ...
- vscode设置中文,设置中文不成功问题
刚安装好的vscode界面显示英文,如何设置中文呢? 在locale.json界面设置”locale":"zh-cn"也未能实现界面为中文,在网上找了参考了,以下教程真实 ...
- Cheatsheet: 2017 04.01 ~ 04.30
Other ReactXP - A LIBRARY FOR BUILDING CROSS-PLATFORM APPS Merging vs. Rebasing Better Git configura ...
- encodeURI和 encodeURIComponent 的作用及应用
首先解释下 encodeURIComponent 的作用:将文本字符串编码为一个有效的统一资源标识符 (URI).为什么要用这个是因为我想把 username 整个当做参数传递给 CGI, 而不让 C ...
- 百度富文本Ueditor将图片存在项目外路径并回显
我的毕设中需要一个类似新闻发布的功能,使用到百度富文本编辑器,不过百度富文本编辑器有点坑(只是我太菜了),粘贴图片和回显这个坑坑了我两天时间.效果是这样的: 就是可以在文本中粘贴图片并显示出来,直接说 ...
- SPDY和HTTP
SPDY 是什么 ? SPDY 是 Google 开发的基于传输控制协议 (TCP) 的应用层协议.SPDY 协议旨在通过压缩.多路复用和优先级来缩短网页的加载时间和提高安全性.(SPDY 是 Spe ...