容斥定理
AC之路有笑有泪
搞ACM挺好的,就是头有点冷。
展开
-
POJ 2773 Happy 2006 容斥定理+二分
题意:现在给你一个m,那么从1开始与m互素的数字呈递增排列,求出第k个数字是多少?思路:容斥+二分。二分答案找到什么时候是第k个数字即可,在一个区间【1,x】中与m互素的数字有多少个,这个不能用欧拉函数求(欧拉函数只能求【1,x】中与x互素的数字有多少个),用容斥定理就可以求出。先将m分解为素数,然后将这些素数组合的所有情况都表示出来,素数个数是奇数,就加上x/tmp,偶数就减去x/tmp;tmp为其中一些素数的最小公倍数(及乘积)。 简称奇加偶减。因为这些素数的所有组合都是确定不变的,所以直接先打个原创 2017-10-12 18:33:01 · 304 阅读 · 0 评论 -
HDU 1796 How many integers can you find (容斥定理)
题意:给一个n,然后给m个数字(不大于20),求若一个数是这m个数字中的任意一个数字的倍数的话,那么这个数字就符合题意,求【1,n),(不包括n)中有多少个这样的数字。思路:容斥定理:每一个数字都能求出一些他的倍数,这些数字肯定都是符合题意的,但是有些数字重复计算了,所以要减去,用这m个数字任意组合,个数为奇数则加去,个数为偶数则减去。(奇加偶减)原创 2017-10-13 11:00:19 · 296 阅读 · 0 评论 -
51nod 1040 最大公约数之和(容斥思想)
思路:你可以确定的是1到n这些数字与n的gcd一定是n的约数,那么n的约数,你先枚举出来。假如是n=20,那么20的约数有:1,2,4,5,10,20; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 (i) 1 2 1 4 5 2 1 4 1 10 1 4 1 2 5 4 1 2 1 20 (gcd)这些数字可以按照gcd的值进行分类。1,2,4,5,10,20(及按约数原创 2017-11-29 10:21:58 · 304 阅读 · 0 评论 -
51nod 1742 开心的小Q (容斥,分块)
1742 开心的小Q基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 如果一个数字存在一个约数是大于1的完全平方数,那么小Q就认为这个数是有趣的。小Q喜欢收集有趣的数字,每找到一个有趣的数,小Q就会变得很开心。小Q发现12是有趣的,18也是有趣的,它们都是36的约数,而在36的约数中,还有3个数是有趣的,它们是4、9、36。小Q很好奇,...原创 2017-11-28 15:36:42 · 419 阅读 · 0 评论 -
HDU 5514 Frogs(容斥问题)
题意:现在有一个m块石头的围成的圈,现在有n只青蛙都在的0号石头上,圈上的石头编号为(0到m-1);现在第i只青蛙一次能跳ai块石头,现在所有的青蛙都一直不停的跳下去,所有青蛙到过的石头的编号之和为多少?思路:每只青蛙都会有一个周期,一周期跳过的总的石头数量为lcm(ai,m); 那么跳的总次数为lcm(ai,m)/ai;及ai*m/(gcd(ai,m)*ai)=m/gcd(ai,m); 所以在这一个圈上跳了m/gcd(ai,m)次才回到原点(每次跳的点一定是平均分布在这个圈上的),那么平均一次跳原创 2017-10-11 13:19:32 · 448 阅读 · 0 评论