求1~n中能被a或b或c整除的數的個數。
每組資料佔一行,依次包括整數n,a,b,c,直到輸入0 0 0 0為止
(1<=a,b,c<=n<=1e9)
輸出1~n中能被a或b或c整除的數的個數,每組佔一行
容斥原理為在計數時,必須注意沒有重複,沒有遺漏。為了使重疊部分不被重複計算,人們研究出一種新的計數方法,這種方法的基本思想是:先不考慮重疊的情況,把包含於某內容中的所有物件的數目先計算出來,然後再把計數時重複計算的數目排斥出去,使得計算的結果既無遺漏又無重複,這種計數的方法稱為容斥原理。
對於這個題就是先把能整除的都加上,再減掉重複的;
#include#include#include#includeusing namespace std;
long long beishu(long long a,long long b)
while(b)
return x1*x2/a;
}int main()
return 0;
}
大水題(容斥原理)
給出乙個數n,求1到n中,有多少個數不是2 5 11 13的倍數。本題有多組輸入 每行乙個數n,1 n 10 18.每行輸出輸出不是2 5 11 13的倍數的數共有多少。示例1 15 4 1 3 7 9 容斥原理 四個集合 a1 a2 a3 a4 a1 a2 a3 a4 a1 a2 a1 a3 a1...
容斥原理 數論
兩個集合的容斥關係公式 a b a b a b a b 重合的部分 三個集合的容斥關係公式 a b c a b c a b b c c a a b c 最後可以推廣到n個集合,集合裡的元素為奇數則加,偶數減 hdu 4135 很簡單,直接求出所有的質因子,然後容斥解決 author crystal ...
容斥原理,反演
大概知道為什麼自己水平比較渣啦。一開始只會反演,然後被容斥驚豔到。然後寫了一段時間容斥,反演忘光光。所以融會貫通真的很難。多校的三道題,當時是用反演做的。事實上以前就知道容斥跟莫比烏斯函式值的關係,然後熟練掌握 然後一段時間沒用就忘了哈。簡單來說就是,求乙個數和乙個集合中的數互質的個數,把集合中乙個...