POJ 2773 Happy 2006 (二分答案+容斥)
題目連結:http://poj.org/problem?id=2773
題意:
求第k個與m互質的數;
分析:
很明顯隨著數的增大與m互質的數就越多,因此我們可以二分答案,
中間需要用到容斥原理求[1,mid]內與m互質的數的個數;
程式碼如下:
#include <iostream>
#include <cstring>
#include <cstdio>
#include <vector>
using namespace std;
const int maxn = 100;
typedef long long LL;
int m,k,cnt;
int p[maxn];
void fen(int m)//對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 calu(LL n)//容斥計數
{
LL sum=0;
for(LL i=1;i<(1<<cnt);i++){
LL mult=1,f=0;
for(int j=0;j<cnt;j++){
if(i&(1<<j)){
f++;
mult*=p[j];
}
}
if(f&1) sum+=n/mult;
else sum-=n/mult;
}
return n-sum;
}
int main()
{
while(~scanf("%d%d",&m,&k)){
LL l=0,r=((LL)1<<62);
LL mid,ans=0;
fen(m);
while(l<=r){//二分答案
mid=(l+r)/2;
LL sum = calu(mid);
if(sum>=k){
r=mid-1;
if(sum==k) ans=mid;
}
else l=mid+1;
}
printf("%I64d\n",ans);
}
return 0;
}
相關文章
- 容斥
- 反射容斥反射
- 容斥原理
- 【模板】容斥原理
- POJ 3662 [USACO08JAN]電話線Telephone Lines SPFA+二分答案
- Min-Max 容斥
- lg容斥與反演
- POJ 2749 二分 + 2-SAT
- POJ - 3041 Asteroids 【二分圖匹配】AST
- 二分答案法
- 容斥原理學習筆記筆記
- 容斥定理 AtCoder——FizzBuzz Sum Hard
- 容斥原理——數學知識
- kuangbin——Hamburgers(二分答案)
- c++ 二分答案C++
- P4178 Tree——點分治 容斥
- 二分答案解題技巧
- POJ-3061 Subsequence(字首和+二分/尺取)
- P1447 [NOI2010] 容斥原理
- Min-Max 容斥學習筆記筆記
- POJ1743 Musical Theme(字尾陣列 二分)陣列
- 關押罪犯(二分答案+染色法判二分圖)
- POJ 3014:Asteroids(二分匹配,匈牙利演算法)AST演算法
- CodeForces571A. Lengthening Sticks(組合數學-容斥)
- Happy coding ! lol?APP
- Check if String is HappyAPP
- HDU 4135 Co-prime(容斥原理+分解質因數)
- P1852 跳跳棋 [LCA思想+二分答案]
- 【二分答案】P2390 地標訪問
- cf449D. Jzzhu and Numbers(容斥原理 高維字首和)
- cf900D. Unusual Sequences(容斥 莫比烏斯反演)
- 機率期望進階 + Min-Max容斥 練習題
- 「數學」助力每一個不知死活的容斥夢
- POJ 3233 Matrix Power Series (矩陣快速冪+等比數列二分求和)矩陣
- HDU 4135——Co-prime(容斥原理&&二進位制列舉)
- CF 773 (Div. 1) D. Two Arrays 雙指標 容斥指標
- OpenJ_Bailian - 2773 採藥(01揹包板題)AI
- 【題解】AGC007E | 二分答案 複雜度分析GC複雜度
- Gym 101962I Colonial Mansions(二分答案 + 資料結構)資料結構