POJ 2773 二分 容斥原理

2021-07-23 10:07:08 字數 547 閱讀 5682

給m k

求與m互質的第k個數 

(1 <= m <= 1000000), k (1 <= k <= 100000000).

k比較大,對於乙個數n,1到n以內和m互質的數可以通過容斥原理很快算出來,並且隨n遞增

因此二分k就好了

#include#include#include#include#include#includeusing namespace std;

typedef long long ll;

const ll p =1000000007;

const long long n=1000000;

ll prim[100];

long long ok=0;

void ff(ll x)

}if (x!=1) prim[ok++]=x;

}ll m,k ;

ll judge(ll x)

return ans;

}int main()

return 0;

}

POJ2773 容斥 二分

題目要求和m互質的第k大。那麼二分區間,統計區間內和m互質的數個數,所有個數為k結果最小的就是答案。k比較大最初二分的右端點開大點。include include include include include include using namespace std define maxn 1111...

poj2773 容斥原理

這個題的意思是給你兩個數m,k,讓你求出與m互質的第k個數,設想對於乙個數r,我們可以求出小於等於r與m互質的數的個數,那麼我們就可以使用二分很快的求解。假設我們把m唯一分解 m p1 a1 p2 a2 pi ai,那麼小於等於r與m互質的數中不應該有p1 p2 pi這些因子,因此問題轉化成求解小於...

HDU3388 二分 容斥原理

題目 coprime 題意 給三個數m,n,k,0 思路 二分 容斥原理 由於所找的數與m,n互質,那麼這個數不能含有m,n所包含的素因子。但是k很大,不可能乙個乙個生成。於是二分,找到最小 的x,使得小於或等於x的數中滿足條件的 數的個數大於或等於k,則這個最小值即為答案。在判斷小於或等於x的數中...