容斥原理
Rocky0429
我愿能朝着太阳生长,做一个温暖的人。
展开
-
Codeforces Round #317 [AimFund Thanks-Round] (Div. 2) C(组合数+容斥)
题目地址:Lengthening Sticks 题意:给出a,b,c,L,要求a+x,b+y,c+z构成三角形,x+y+z<=L,问有多少中分法(x,y,z可为0)。 思路:用容斥来搞,结果ans=全部组合的情况-不符合三角形定理的情况。 1.求全部组合的情况: 当L=0时,res=1; 当L=1时,res=3;所以当L=1时形成的情况为1+3=4 当L=2时,res=6;所以当L=2时原创 2015-08-24 14:44:14 · 845 阅读 · 0 评论 -
HDU 4135-Co-prime(容斥求区间内与N互质的个数(队列||位运算))
题目地址:HDU 4135 题意:求[A,B]区间内与N互质的数的个数。 思路:我们可以用容斥计算出[1,B]之间和[1,A-1]之间的与N互质的数,然后相减即可。然后我们用一种快速的方法求出[1,X]之间的与N互质的数,首先我们求出N的质因子,[1,X]之间与N的质因子成倍数关系的数肯定与N不成互质关系。 Eg:X=12,N=30 ,N的质因子为2,3,5。 (2,4,6,8,10)->X原创 2015-08-24 18:25:55 · 1624 阅读 · 0 评论 -
HDU 1695-GCD(容斥)
题目地址:HDU 1695 题意:在[1,b]和[1,d]中各选一个数x,y,使得GCD(x,y)=k,求满足的(x,y)对数,(x,y)和(y,x)算一种。 思路:GCD(x,y)=k 可以变换成GCD(x/k,y/k)=1。这也就变成了在[1,b/k]和[1,d/k]之间找到一个i,j,使得GCD[i,j]=1。因为(3,5)和(5,3)是同一种,所以我们让[1,b/k]为两个区间的小的区间原创 2015-08-25 08:39:20 · 1374 阅读 · 0 评论 -
HDU 2841-Visible Trees(容斥)
题目地址:HDU 2841 题意:给出一个m*n的矩阵,从(1,1)开始,一个人站在(0,0)位置,问人可以看到矩阵里的几棵树,要求两棵树和人在同一直线上的时候只能看到一棵。 思路:对于一个点(x,y)只要x与y存在最大公约数g,则可以知道在(x/g,y/g)有一棵树挡起了点(x,y),所以(x,y)是看不到的,因此我们要判断一个点是否能看到,就看它的(x,y)是否存在最大公约数不为1的数,若不原创 2015-08-24 20:59:01 · 728 阅读 · 0 评论