![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
容斥原理
文章平均质量分 91
Cold_Chair
我XXX就是饿死,死外边,从这里跳下去,也不会再做你九条可怜一个测试点
展开
-
【2018提高组】模拟A组&省选 划分(二项式反演优化容斥)
Description:有一个未知的序列x,长度为n。它的K-划分序列y指的是每连续K个数的和得到划分序列,y[1]=x[1]+x[2]+….+x[K],y[2]=x[K+1]+x[K+2]+….+x[K+K]….。若n不被K整除,则y[n/K+1]可以由少于K个数加起来。比如n=13,K=5,则y[1]=x[1]+…+x[5],y[2]=x[6]+….+x[10],y[3]=x[11]+x[...原创 2018-08-10 19:26:17 · 414 阅读 · 0 评论 -
二项式反演总结
总结一下见到的各种二项式反演的套路。总的来说,二项式反演就是容斥。只不过这个容斥有固定的套路,形式就那么几种,我把它们且分为两种形式: 1.直接不好算,但是至多好算。 2.直接不好算,但是至少好算。至多好算:设fifif_i表示恰好有i个得方案数,gigig_i表示至多有i个的方案数。fff和ggg满足: g(n)=∑ni=0Cin∗f(i)g(n)=∑i=0nCni∗f...原创 2018-08-15 15:30:56 · 1284 阅读 · 0 评论 -
水果拼盘(反演求容斥系数)
Description:题解:出题人本意是考反演,结果没学好期望线性可加。最近一直在练容斥反演,所以一看就上容斥反演。设f(S)f(S)f(S)表示选的水果的集合是S的方案数,g(S′)g(S′)g(S')表示选的水果是S’的子集的方案数。显然g(S′)g(S′)g(S')是非常好算的,记cntcntcnt表示拼盘里的水果都属于S’集的拼盘的个数,则g(S′)=Ckcn...原创 2018-08-19 19:10:18 · 857 阅读 · 0 评论 -
斯特林反演学习小记
我们知道斯特林数和集合有着密不可分的联系,所以斯特林反演一般就用于集合划分上。斯特林反演是用来求容斥系数的。栗子:bzoj4671: 异或图直接做很难做。枚举一个集合划分,对于同一集合的点,不一定要求连通,但是不同集合的点一定不连通。这个的方案数是很好算的。我们给它个容斥系数,设为f(S)f(S)f(S)对于一个确切的图,假设它有m个连通块,显然当m=1时它才是有用...原创 2018-08-21 16:50:23 · 1592 阅读 · 0 评论 -
51nod 1355 斐波那契的最小公倍数
原题链接.题解:这题肯定是我做过的最简单的八级算法题了。设FiFiFi为斐波拉契序列的第i项。通过打表可得: gcd(Fn,Fm)=Fgcd(n,m)gcd(Fn,Fm)=Fgcd(n,m)gcd(Fn,Fm)=F_{gcd(n,m)}接下来尝试去证明这个结论。首先斐波拉契序列有一个递推式: Fn+m=Fn−1∗Fm+Fn∗Fm+1Fn+m=Fn−1∗Fm+Fn∗Fm+...原创 2018-09-13 21:31:13 · 321 阅读 · 0 评论 -
【GDOI2019模拟2019.2.23】签到
题目:题解:设是a[i]的倍数的限制为a,是b的倍数限制为b,f=1的限制为c。相当于求:a|b|c=a+b+c-a&b-a&c-b&c+a&b&c发现我们求a并不好求,考虑把所有的a改成!a=(n-!a)+b+c-(b-!a&b)-(c-!a&c)-(b&c)+(b&c-!a&b&c)=n...原创 2019-02-24 18:33:59 · 408 阅读 · 0 评论 -
【GDOI2019Day1模拟2019.4.28】星际穿越(简单容斥+EGF+多项式求逆)
Description:题解:不难发现当r=1时就是选若干上升序列。而一列至少有一行不满足就不稳定的。这个破限制肯定要想方设法用容斥搞掉。至少一行不满足太难算了,不妨改成算全部都满足,假设有i个列需要不稳定,即0列全部满足,但是有j个列全部满足,即稳定,则容斥系数为(−1)j(-1)^{j}(−1)j这样就可以得到一个显然的dp,先把整个序列每k个分块,最后一块不完整先不管。设f[...原创 2019-04-28 20:50:20 · 422 阅读 · 0 评论 -
【NOI2019模拟2019.6.27】幻化成风(集合容斥系数,胡乱dp)
Description:题解:xjb乱搞题,卡死在无序了。考虑肯定是枚举个集合划分,然后强制一个集合里的选的b一样嘛,就可以无限背包了,然后发现如果按题意说的无序的话特别难做,不妨考虑有序,即每一个a[i]都有标号,最后除以∏cnt[a[i]]\prod cnt[a[i]]∏cnt[a[i]]就好了。先思考暴力枚举集合划分,系数是什么,系数应该是只和这个集合包含的元素有关的,不妨设f[...原创 2019-06-27 21:38:43 · 855 阅读 · 1 评论