容斥原理 wa很久

2021-08-31 09:36:20 字數 756 閱讀 9066

重點在於減去的不是兩數乘積的倍數個數,而是兩數的最小公倍數的倍數個數

求1~n中能被a或b或c整除的數的個數。

容斥原理是組合數學中的基礎知識,但是cs第一次做的時候就不小心掉坑里了,你能幫他一次ac嗎?

每組資料佔一行,依次包括整數n,a,b,c,直到輸入0 0 0 0為止

(1<=a,b,c<=n<=1e9)

輸出1~n中能被a或b或c整除的數的個數,每組佔一行

1000 2 3 5

100 2 3 5

0 0 0 0

73474

#includeint main()

sb=a*b/x; //a,b的最小公倍數

x=sb,y=c;

for(;y>0;)

sb1=sb*c/x; //a,b,c的最小公倍數;求法為:先求a,b的最小公倍數sb,再求sb和c的最小公倍數sb1;

x=a;y=c;

for(;y>0;)

sb2=a*c/x; //a,c的最小公倍數;

x=b;y=c;

for(;y>0;)

sb3=b*c/x; //b,c的最小公倍數;

sum=n/c; //先求c的倍數有幾個;

if(b%c!=0) //判斷是否b需要求值

if(a%b!=0&&a%c!=0) //判斷a是否需要計算

}printf("%lld\n",sum);

}}

容斥原理 數論

兩個集合的容斥關係公式 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 ...

容斥原理,反演

大概知道為什麼自己水平比較渣啦。一開始只會反演,然後被容斥驚豔到。然後寫了一段時間容斥,反演忘光光。所以融會貫通真的很難。多校的三道題,當時是用反演做的。事實上以前就知道容斥跟莫比烏斯函式值的關係,然後熟練掌握 然後一段時間沒用就忘了哈。簡單來說就是,求乙個數和乙個集合中的數互質的個數,把集合中乙個...

關於容斥原理

容斥原理大概是這樣的,以長方體體積並為例,我們需要用容斥原理容斥出若干個長方體體積的並.首先,我們將每個長方體標號為1 n,那麼這些長方體的取捨顯然可以表示為乙個二進位制的數字s.設f s 表示長方體取捨狀態為s時,長方體的體積並,於是我們可以知道f 111111 有n個1 就是我們最終的所求.好,...