天天看點

codeforces B. Friends and Presents(二分+容斥)

題意:從1....v這些數中找到c1個數不能被x整除,c2個數不能被y整除!

并且這c1個數和這c2個數沒有相同的!給定c1, c2, x, y, 求最小的v的值!

思路: 二分+容斥,二分找到v的值,那麼s1 = v/x是能被x整除的個數

s2 = v/y是能被y整除數的個數,s3 = v/lcm(x, y)是能被x,y的最小公倍數

整除的個數! 

那麼 v-s1>=c1 && v-s2>=c2 && v-s3>=c1+c2就是二分的條件!