![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
容斥原理
BrooksBUAA
这个作者很懒,什么都没留下…
展开
-
[HDU 5213]Lucky:莫队+容斥原理
点击这里查看原题莫队好题,用F(l1,r1,l2,r2)表示答案,则根据容斥原理,减去两个数均在[r1+1,r2]内的情况,减去两个数均在[l1,l2-1]内的情况,再加上两个数均在[r1+1,l2-1]内的情况即为答案: F(l1,r1,l2,r2)=f(l1,r2)-f(r1+1,r2)-f(l1,l2-1)+f(r1+1,l2-1)于是把每个询问分成4个区间进行莫队/*User:Sma原创 2017-04-11 17:26:38 · 301 阅读 · 0 评论 -
[HDU 4135]Co-prime:容斥原理
点击这里查看原题问题可以转化成求[1,x]中与n互质的数的个数,则答案为cal(1,b)-cal(1,a-1),现在的问题就是如何去求cal(1,x) 这个需要用到容斥原理,对n进行质因数分解,然后减去[1,x]中有含有一个质因数的数的个数,加上含有两个质因数的数的个数,减去三个……,以此类推,得到答案/*User:SmallLanguage:C++Problem No.:4135*/#原创 2017-04-11 19:12:31 · 411 阅读 · 0 评论 -
[HDU 1796]How many integers can you find:容斥原理
点击这里查看原题典型的容斥原理,枚举所有取数情况求最小公倍数 有几个坑需要注意:输入的数可能有0所有数的最小公倍数可能会爆int/*User:SmallLanguage:C++Problem No.:1796*/#include<bits/stdc++.h>#define ll long long#define inf 999999999using namespace std原创 2017-04-11 19:32:00 · 267 阅读 · 0 评论 -
[HDU 2841]Visible Trees:容斥原理
点击这里查看原题一个点能被看见的条件是gcd(x,y)=1,因此,问题转化为n,m范围内有多少数对的gcd为1。 可以运用容斥原理,先求一个莫比乌斯函数,然后计算每一行的合法的数目。/*User:SmallLanguage:C++Problem No.:5475*/#include<bits/stdc++.h>#define ll long long#define inf 99999原创 2017-04-12 16:57:50 · 442 阅读 · 0 评论 -
[HDU 5731]Solid Dominoes Tilings:状压DP+容斥原理
点击这里查看原题这题是POJ 2411的升级版。dp[i][j]表示长为i宽为j的方案数,打个表预处理一下。然后枚举列的切割方案,因为一共有m-1条竖线,因此有2^(m-1)种情况。cnt[i]表示按当前的列分割方案,宽为i的矩形的方案数,f[i]表示在当前列分割情况下,前i行的情况数,f[i]=cnt[i]-sigma{f[j]*cnt[i-j]}(0/*User:SmallLanguage:原创 2017-05-03 08:28:00 · 472 阅读 · 0 评论 -
[BZOJ 1042][HAOI2008]硬币购物:容斥原理
点击这里查看原题f[i]表示在不考虑硬币数量的情况下,达到i元的方案数。 于是进行容斥,答案=所有方案数-有一种硬币超出限制(即使用d[i]+1枚硬币)+有两种超出限制-有三种超出限制+有四种超出限制/*User:SmallLanguage:C++Problem No.:1042*/#include<bits/stdc++.h>#define ll long long#define原创 2017-05-31 11:48:39 · 332 阅读 · 0 评论 -
[BZOJ 1853][Scoi2010]幸运数字:容斥原理
点击这里查看原题因为最多有10位,所以最多有2+4+…+1024=2046个数,去掉存在倍数关系的数,对剩余的数做容斥/*User:SmallLanguage:C++Problem No.:1853*/#include<bits/stdc++.h>#define ll long long#define inf 999999999using namespace std;int hea原创 2017-05-31 20:54:57 · 303 阅读 · 0 评论 -
[BZOJ 2301][HAOI2011]Problem b:莫比乌斯反演+容斥
点击这里查看原题类似于BZOJ 1101,不过要多套个容斥 注意,a和c要先-1再/k(我因为先/k后-1 WA了一次)/*User:SmallLanguage:C++Problem No.:1101*/#include<bits/stdc++.h>#define ll long long#define inf 999999999using namespace std;const原创 2017-06-02 09:41:45 · 321 阅读 · 0 评论