
容斥原理
stargazer.
夜を穿つの
展开
-
【LOJ #3284】「USACO 2020 US Open Platinum」Exercise(容斥 / 组合数学 / DP)
传送门首先nnn个数的置换个数是n!n!n!证明可以用生成函数循环的egf f=∑i(i−1)!i!xi=∑ixiiegf\ f=\sum_i\frac{(i-1)!}{i!}x^i=\sum_i\frac{x^i}{i}egf f=∑ii!(i−1)!xi=∑iixiln(11−x)=∑ixii=f\ln(\frac{1}{1-x})=\sum_i\frac...原创 2020-04-21 22:06:58 · 364 阅读 · 0 评论 -
【TopCoder 2013 2A 1000】ThePowers(容斥)
传送门考虑对于每个非次方底数求答案考虑所有x满足xr≤A,xr+1>Ax满足x^{r}\le A,x^{r+1}>Ax满足xr≤A,xr+1>A的非次方底数分一组这个可以先二分再容斥求出考虑对于每一个,变成求i∈[1,logxA],j∈[1,B]i\in [1,\log_xA],j\in[1,B]i∈[1,logxA],j∈[1,B]不同的ijijij个数考虑对于每...原创 2020-04-02 21:36:16 · 372 阅读 · 0 评论 -
【LOJ #2983】「WC2019」数树(容斥 / 生成函数 / 树形DP / 多项式exp)
传送门感觉就是对着zxyzxyzxy博客推的不过还是记一下吧Subtask1Subtask1Subtask1显然就是求有多少条红蓝边相同如果有xxx条,答案就是yn−xy^{n-x}yn−x随便爱咋做咋做Subtask2Subtask2Subtask2考虑如果我们枚举边集合SSS设F(s)=∑T2[T1∩T2=S],G(s)=∑T1[S⊆T1∩T2]F(s)=\sum_{T_2...原创 2020-03-09 21:01:48 · 184 阅读 · 0 评论 -
【LOJ #6102】「2017 山东二轮集训 Day1」第三题(莫比乌斯反演 / min-max容斥)
传送门原题上次没写题解这次补一下得了首先由gcd(fi,fj)=fgcd(i,j)gcd(f_i,f_j)=f_{gcd(i,j)}gcd(fi,fj)=fgcd(i,j)首先证明gcd(fi,fi−1)=1gcd(f_i,f_{i-1})=1gcd(fi,fi−1)=1然后fi+j=fi−1fj+fifj+1f_{i+j}=f_{i-1}f_j+f_if_{j+1}fi+j...原创 2020-02-19 20:16:26 · 311 阅读 · 0 评论 -
【LOJ #6072】 「2017 山东一轮集训 Day5」苹果树(容斥 / 搜索 / 矩阵树定理)
传送门考虑求出kkk个好苹果时权值和≤lim\le lim≤lim的方案数这个可以用折半搜索+双指针求出来设权值不为−1-1−1的苹果有mmm个然后考虑把苹果分成三部分:1−k:最后是有用的苹果1-k:最后是有用的苹果1−k:最后是有用的苹果k+1−m:好的但无用的苹果k+1-m:好的但无用的苹果k+1−m:好的但无用的苹果m+1−n:坏苹果m+1-n:坏苹果m+1−n:坏苹果那么...原创 2020-02-17 15:12:24 · 342 阅读 · 0 评论 -
【洛谷 P5825】 排列计数(二项式反演 / 多项式 / 生成函数)
传送门题解区的Eulerian numberEulerian\ numberEulerian number什么的完全看不懂啊显然能得到一个n2,dpn^2,dpn2,dpf[i][j]f[i][j]f[i][j]表示前iii个有jjj个的方案有f[i][j]=f[i−1][j]∗(j+1)+f[i−1][j−1](i−j)f[i][j]=f[i-1][j]*(j+1)+...原创 2020-02-12 19:19:42 · 293 阅读 · 0 评论 -
【LOJ #2565】「SDOI2018」旧试题(莫比乌斯反演/三元环计数)
传送门首先在sdoi2015sdoi2015sdoi2015约数个数和中有结论d(ij)=∑p∣i∑k∣j[gcd(i,j)==1]d(ij)=\sum_{p|i}\sum_{k|j}[gcd(i,j)==1]d(ij)=∑p∣i∑k∣j[gcd(i,j)==1]证明很简单,考虑每个质数p,i=i′∗pa,j=j′∗pbp,i=i'*p^a,j=j'*p^bp,i=i′∗pa,j=j′∗...原创 2020-02-01 13:10:02 · 327 阅读 · 0 评论 -
【LOJ #3058】「HNOI2019」白兔之舞(单位根反演+矩阵快速幂+MTT)
传送门首先可以发现走iii步,从xxx到yyy的方案很好算只需要把方案矩阵AAA求A[x,y]iA^i_{[x,y]}A[x,y]i再乘一个(Li){L\choose i}(iL)就可以了那么对于每个ttt的答案就是∑m=0L[k∣m−t](A[x,y]m(Lm))\sum_{m=0}^L[k|m-t](A^m_{[x,y]}{L\choose m})∑m=0L[k∣m−t](A[...原创 2019-12-28 17:15:46 · 235 阅读 · 0 评论 -
【LOJ #2541】「PKUWC2018」猎人杀(容斥+分治NTT)
传送门能发现对于一个死的人计算的时候不忽略他的概率而看做遇到他继续射下一个不会影响答案考虑活、死的人的概率之和为w1,w2w1,w2w1,w2那么下一次射杀iii的概率为wiw1\frac{w_i}{w1}w1wi如果把死的人也算进去那么x=w2w1+w2x+wiw1+w2x=\frac{w2}{w1+w2}x+\frac{w_i}{w1+w2}x=w1+w2w2x+w1+w2w...原创 2019-11-02 17:26:29 · 142 阅读 · 0 评论 -
【LOJ#575】【LibreOJ NOI Round #2】—不等关系(容斥+分治NTT)
传送门设fif_ifi表示前iii个数都满足限制的方案数考虑如果忽略>>>号的限制实际上就是若干个上升段由于实际上需要在某些位置强制下降可以考虑容斥设cnticnt_icnti表示前iii个有多少个>>>那么fn=∑i=0n−1[si=′>′](−1)cntn−1−cnti(ni)fif_n=\sum_{i=0}^{n-1}[s_i='...原创 2019-10-13 19:09:39 · 287 阅读 · 0 评论 -
【BZOJ4671】—异或图(斯特林反演+线性基)
传送门原创 2019-09-10 18:06:56 · 190 阅读 · 0 评论 -
【LOJ #547】【LibreOJ β Round #7】—匹配字符串(常系数齐次线性递推+容斥+Lucas)
传送门令f[i]f[i]f[i]表示前iii个全部合法且最后一个为000的方案数那么可以得到f[i]=∑j=1mf[i−j]f[i]=\sum_{j=1}^mf[i-j]f[i]=∑j=1mf[i−j]记sss为fff前缀和那么有f[i]=s[i−1]−s[i−m−1]f[i]=s[i-1]-s[i-m-1]f[i]=s[i−1]−s[i−m−1]s[i]−s[i−1]=s[i−1]...原创 2019-09-06 09:13:43 · 372 阅读 · 0 评论 -
【NOIp2019模拟】T3—简单题(斯特林反演+整数拆分)
传送门原创 2019-09-04 15:03:27 · 258 阅读 · 0 评论 -
【CodeChef】—Sum of Cubes(斯特林数+容斥+三元环计数)
传送门令fs,if_{s,i}fs,i表示边iii在点集sss中是否出现答案就是∑s(∑ifs,i)k\sum_{s}(\sum_{i}f_{s,i})^k∑s(∑ifs,i)k考虑把kkk次方拆开就是∑i=0kSk,ii!(∑fs,ii)\sum_{i=0}^{k}S_{k,i}i!{\sum_{f_{s,i}}\choose i}∑i=0kSk,ii!(i∑fs,i)...原创 2019-08-21 19:12:22 · 507 阅读 · 0 评论 -
【LOJ2542】【PKUWC2018】—随机游走(Min-Max容斥+树形dp+FMT)
传送门容斥好题考虑经过一个点集所有点的期望不好处理我们考虑min−maxmin-maxmin−max容斥则ans=∑T⊆SE(min(T))ans=\sum_{T\subseteq S}E(min(T))ans=∑T⊆SE(min(T))现在我们先考虑怎么对于一个集合TTT求出有一个被访问的期望令f[i]f[i]f[i]表示点iii走到TTT中的点的期望步数,in[u]in[u]i...原创 2019-06-28 22:47:14 · 195 阅读 · 0 评论 -
【洛谷P4707】—重返现世(推广Kth Min-Max容斥+dp)
传送门考虑kthmin−maxkth min-maxkthmin−max容斥ans=∑T⊆UE(kth(T))=∑T⊆U(−1)∣T∣−k(n−1k−1)E(min(T))ans=\sum_{T\subseteq U}E(kth(T))=\sum_{T\subseteq U}(-1)^{|T|-k}{n-1\choose k-1}E(min(T))ans=∑T⊆UE(kth(T))=∑T⊆...原创 2019-07-04 18:22:35 · 190 阅读 · 0 评论 -
【UOJ#450】【集训队作业2018】—复读机(单位根反演+生成函数)
传送门数据范围很明显是要我们分情况讨论d=1d=1d=1的时候答案显然就是knk^nkn考虑d=1d=1d=1的时候,由于时间不同,考虑每个复读机的EGFEGFEGF就是F(x)=∑i=0∞[d∣i]xii!F(x)=\sum_{i=0}^{\infty}[d|i]\frac{x^i}{i!}F(x)=∑i=0∞[d∣i]i!xi把[d∣i][d|i][d∣i]单位根反演一下F(x...原创 2019-07-14 21:58:49 · 206 阅读 · 0 评论 -
【51nod1806】—wangyurzee的树(purfer序列+容斥)
传送门发现mmm很小,显然可以考虑容斥则不满足要求就可以变成强制为一个度数的方案转化到树的purferpurferpurfer序列问题就变成了用nnn个数去填n−2n-2n−2个格子,有些数指定出现次数求方案假设限制了ttt个数,分别为d1,d2,,,dtd_1,d_2,,,d_td1,d2,,,dt令s=∑dis=\sum d_is=∑di则方案数就是ans=(n−2−...原创 2019-07-17 15:22:09 · 188 阅读 · 0 评论 -
【BZOJ4596】【SHOI2016】—黑暗前的幻想乡(矩阵树+容斥)
传送门每个公司恰好一条边不好求容斥后变成最多n−1n-1n−1个公司有边−-−最多n−2n-2n−2个公司没边+最多n−3n-3n−3个公司有边……每次矩阵树做一次就完了复杂度O(2nn3)O(2^nn^3)O(2nn3)#include<bits/stdc++.h>using namespace std;const int RLEN=1<<20|1;inl...原创 2019-07-17 15:29:35 · 147 阅读 · 0 评论 -
【TopCoder - 13444】—CountTables(第二类斯特林数+容斥原理)
传送门题意:给定一个n×mn\times mn×m的矩阵,每个点的数值在[1,C][1,C][1,C]内,求有多少种方案使所有行和所有列都互不相同考虑f[i]f[i]f[i]表示前iii行mmm列都不相等的方案数考虑用总方案容斥掉不合法的方案iii个列都不相等的情况是(cim){c^i\choose m}(mci)考虑减去行相等的情况考虑把所有相同的行分到一个集合可以通过枚举集合数...原创 2019-07-29 21:30:09 · 631 阅读 · 0 评论 -
【校内模拟7.30】—slay(容斥+dp)
传送门md我连exgcd都不会了我好菜啊考虑首先nnn为质数时考虑如果前k−1k-1k−1个都随便取那最后一个就固定了选哪个但是这样有可能和前面重复考虑容斥ans=1k∑i=1k(−1)i−1Cnk−ians=\frac 1 k\sum_{i=1}^{k} (-1)^{i-1}C_n^{k-i}ans=k1∑i=1k(−1)i−1Cnk−i由于nnn为质数,所以我们枚举相同...原创 2019-07-30 20:24:58 · 158 阅读 · 0 评论 -
【洛谷 P4921】—情侣?给我烧了!(容斥+组合数学)
传送门令fif_ifi表示至少iii对情侣坐一起的方案数显然fj=(nj)2j!2j(2n−2j)!f_j={n\choose j}^2j!2^j(2n-2j)!fj=(jn)2j!2j(2n−2j)!令ansians_iansi表示恰好iii对情侣坐一起的方案显然有fi=∑j=in(ji)ansjf_i=\sum_{j=i}^n {j\choose i}ans_jfi=∑j=...原创 2019-08-15 13:21:26 · 174 阅读 · 0 评论 -
【洛谷 P4921】—情侣?给我烧了!(加强版)(容斥+组合数学)
传送门接着之前的思路继续推瓶颈在于预处理f(n)f(n)f(n)考虑化一下f(n)=∑j=0n(−1)j1j!2j1(n−j)!2(2n−2j)!=1n!2∑j=0n(−1)jj!2j(nj)(2n−2j)!=1n!2∑j=0n(−1)jgjf(n)=\sum_{j=0}^n(-1)^j\frac{1}{j!}2^j\frac{1}{(n-j)!^2}(2n-2j)!\\=\frac ...原创 2019-08-15 14:44:35 · 184 阅读 · 0 评论 -
【BZOJ2440】【中山市选2011】—完全平方数(莫比乌斯函数+容斥原理)
传送门题意:求第kkk个无平方因子数考虑到第kkk个不好求二分一个数xxx,计算xxx以内的无平方因子数由于容斥原理ans=n−ans=n-ans=n−质数的平方的所有倍数+2个质数之积的平方的所有倍数-3个质数之积的平方的所有倍数+4个……这是个简单的容斥很好证明考虑一下每个的符号,质数为−-−,2个质数为+++,3个质数为−-−,4个质数为+++就是莫比乌斯函数!!由于大于n...原创 2019-02-18 16:38:42 · 205 阅读 · 0 评论