
容斥原理
zxyoi_dreamer
退役了退役了爬了爬了,搞个锤子算法竞赛,不如好好享受大学生活。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【LOJ3284】「USACO 2020 US Open Platinum」Exercise(容斥)
传送门题解:由于最后求的是所有lcm的乘积,直接分质数考虑即可。假设求出 ppp 的最大次数恰好为 eee 的置换有 g(p,e)g(p,e)g(p,e) 个,显然对答案的贡献为 (pe)g(p,e)(p^e)^{g(p,e)}(pe)g(p,e) ,并不显然。我们考虑计算出 ppp 的次数至少为 eee 的数量,记为 f(p,e)f(p,e)f(p,e),然后计算 ∑e=1f(p,e)...原创 2020-04-21 15:33:36 · 419 阅读 · 0 评论 -
【校内模拟】pow(容斥)(搜索优化)
简要题意:求 1≤x≤n,1≤y≤m1\leq x\leq n,1\leq y\leq m1≤x≤n,1≤y≤m 的 xyx^yxy 有多少种不同的结果。n,m≤5e18n,m\leq 5e18n,m≤5e18题解:原题TCO2013 2A 1000,数据范围只有 1e9。其实这个数据范围 5e185e185e18 没有什么意思,不过是一些诡异的搜索优化,没有通用性和参考价值,不过这里...原创 2020-03-29 14:34:01 · 300 阅读 · 0 评论 -
【校内模拟】A(容斥原理)(数位DP)(范德蒙德恒等式)(高精度)
简要题意:请你对满足下列条件的正整数序列 A1,A2⋯AnA_1,A_2\cdots A_nA1,A2⋯An 进行计数。∀1≤i≤n,Li≤Ai≤Ri\forall 1\leq i\leq n,L_i\leq A_i\leq R_i∀1≤i≤n,Li≤Ai≤Ri令 S=∑i=1nAiS=\sum\limits_{i=1}^nA_iS=i=1∑nAi 给出 DDD 进制数字集...原创 2020-02-17 23:12:31 · 456 阅读 · 0 评论 -
【HDU6537】Neko and function(min_25筛)(二项式反演)
传送门题解:fff有一个令人窒息的限制,就是每个位置不能是 1,我们考虑构造一个函数 g(n.k)g(n.k)g(n.k) 其定义和 fff 一样但是允许某些位置为 111。我们考虑 kkk 个位置中有多少个 111,不难发现 ggg 是 fff 乘上一个组合数的前缀和 :g(n,k)=∑i=0k(ki)f(n,i)g(n,k)=\sum_{i=0}^k{k\choose i}f(n,i...原创 2020-02-14 22:14:13 · 356 阅读 · 0 评论 -
【校内模拟】黑白划分(线段树)(容斥)
简要题意:给你一个纯白的,边长为2n2^n2n的正方形。修改操作为翻转这个正方形某一行或某一列所有格子的颜色。一个正方形如果为纯色,权值为1,否则权值为四个小正方形权值之和+1,请你在每次修改之后回答当前正方形的权值。要求单次做到O(n)O(n)O(n)。题解:其实算权值的操作本质上就是分裂。访问到的正方形总数就是权值。一个正方形会被访问当且仅当它所在行会被单独分裂或它所在列会被单独...原创 2019-11-05 18:35:26 · 148 阅读 · 0 评论 -
【CTSC2019】随机立方体(二项式反演)
传送门题解:以下假设n≤m≤ln\leq m\leq ln≤m≤l一看模数我还以为要上多项式全家桶。。。按照套路,看到“恰好”二字觉得并不对劲。。。但是你当你尝试计算“至少”的时候你觉得更不对劲,因为显然有大量的重复部分被计算,感觉计算“至少”这个东西本来就要容斥。容斥套容斥???考虑计算钦定iii个位置成为极大的概率fif_ifi。然后二项式反演得到答案为ans=∑i=kn(ik...原创 2019-11-01 22:05:37 · 217 阅读 · 0 评论 -
【JSOI2019】神经网络(树上背包)(生成函数)(容斥原理)
传送门题解:由于树与树之间连成了完全图,我们实际上要考虑的每棵树上拿多少条链出来,这个可以直接树上背包求一下,注意这里的链要考虑方向。现在要把这些树链拿出来排成一个环,环可以旋转不能翻转。且相邻两个位置上放的树链不能来自同一棵树。设第iii棵树拿出jjj条链排成一个排列的方案数是fi,jf_{i,j}fi,j,对于“不能来自同一棵树”这个条件,我们考虑容斥,枚举有多少个断点合并。考虑...原创 2019-10-25 22:08:45 · 413 阅读 · 0 评论 -
【洛谷P4707】重返现世(Min-Max容斥)(背包)
传送门题解:首先令k=n−k+1k=n-k+1k=n−k+1,转化为求第kkk大。直接利用Kth−MinMaxKth-MinMaxKth−MinMax容斥的式子我们知道要求这个东西:E(kthmax(S))=∑T⊆S(−1)∣T∣−k(∣T∣−1k−1)E(min(T))E(kth\max(S))=\sum_{T \subseteq S}(-1)^{|T|-k}{|T|-1\choo...原创 2019-07-31 09:11:38 · 205 阅读 · 0 评论 -
【TC SRM 498 DIV1 Hard】【TC 11223】FoxJumping(容斥)(DP)
传送门题解:设f[i][x][y]f[i][x][y]f[i][x][y]表示用iii个任意向量走到(x,y)(x,y)(x,y)的方案数,g[i][k]g[i][k]g[i][k]表示用iii个非法向量走到k∗10,k∗10k*10,k*10k∗10,k∗10的方案数。DP发现,f[i][x][y]f[i][x][y]f[i][x][y]中xxx和yyy的两维没有关系,分开DP,前缀和优...原创 2019-08-05 21:48:34 · 289 阅读 · 0 评论 -
【HAOI2015】【BZOJ4036】【洛谷P3175】按位或(Min-Max 容斥)(FMT)
BZOJ传送门洛谷传送门题解:首先这种跟二进制位有关的期望题很显然就是考虑Min-Max容斥。这道题的集合显然就是所有二进制位。于是E(max(S))=∑T⊆S(−1)∣T∣+1E(min(T))E(\max(S))=\sum_{T\subseteq S}(-1)^{|T|+1}E(\min(T))E(max(S))=T⊆S∑(−1)∣T∣+1E(min(T))显然TTT集合中...原创 2019-08-06 18:47:21 · 215 阅读 · 0 评论 -
【TC SRM 670】【TC 13891】【BZOJ4671】Gxor(斯特林反演)(线性基)(高斯消元)
传送门题解:枚举一下连通块,不同块之间不允许连边,同块之间允许任意连边。然后高斯消元算一下方案数。我们需要算的是111个连通块的方案数。考虑一个实际连通块数量为ttt的图,它会在我们枚举kkk个连通块的时候被算St,kS_{t,k}St,k次。考虑∑i(−1)i−1Sn,i(i−1)!=[n=1]\sum_{i}(-1)^{i-1}S_{n,i}(i-1)!=[n=1]∑i(−1...原创 2019-08-23 21:43:59 · 283 阅读 · 0 评论 -
【CodeChef-SUMCUBE】Sum of Cubes(第二类斯特林数)(三元环计数)
传送门题解:首先还是利用斯特林数转化一下组合意义,考虑1−k1-k1−k条边同时出现在图里的情况。由于kkk很小,对边分布的不同情况分类讨论一下就行了。为了算各个情况的边的分布需要容斥,在k=3k=3k=3的时候需要三元环计数。代码:#include<bits/stdc++.h>#define ll long long#define re register#def...原创 2019-08-21 18:00:46 · 289 阅读 · 0 评论 -
【题目泛做】雅礼集训:attack(容斥)(单调栈)(差分)
题解:首先考虑一个简单容斥:对于一个一维上区间,显然它的大小为1的子区间个数永远是大小为2的子区间个数+1。拓展到二维上,显然一个矩阵的2∗22*22∗2的子矩阵个数+1∗1+1*1+1∗1子矩阵−2∗1-2*1−2∗1子矩阵−1∗2-1*2−1∗2子矩阵。所以考虑对于所有2*2以内的小矩阵统计答案。显然对于一个矩阵,答案为包含它的全111矩阵的个数的kkk次方。我们需要对于一个小...原创 2019-09-05 10:09:18 · 250 阅读 · 0 评论 -
【集训队作业2018】青春猪头少年不会梦到兔女郎学姐(容斥)(分治FFT)
简要题意:给定 nnn 种颜色的球,第 iii 种颜色的球数量为 aia_iai 个,一种排列的贡献可以如下计算:先把这个序列首尾相连,然后把所有相邻且颜色相同的段拿出来,贡献为他们的长度之积,求所有排列的贡献和,原排列不同,首尾相连后相同的排列不算同一种。模 998244353998244353998244353。n≤1e5,∑ai≤2e5n\leq 1e5,\sum a_i\leq 2e...原创 2019-09-05 14:48:04 · 497 阅读 · 0 评论 -
【HDU4624】Endless Spin(min-max容斥)(DP)
传送门题解:这道题从某种意义上体现了OI题目中对期望取模的优越性。据我所知,ACM的概率、期望题目,答案是不允许取模的。其实就是一个SBmin-max容斥,发现算期望只和实际的集合大小奇偶性和包含集合中位置的区间个数有关,DP算出来即可。这份代码并不能过,我拿了表来看,刚好卡在第15位精度上面。请使用奇技淫巧。代码:#include<bits/stdc++.h>#i...原创 2019-09-05 15:31:29 · 387 阅读 · 0 评论 -
【PE 559】Permuted Matrices(容斥)
传送门题解:用学校的电脑只跑了43s。发现当我们确定哪些位置下降后,把序列分成若干段,对于每段,我们确定哪些数放进去之后肯定就只有唯一方式了。考虑枚举⌊nk⌋\lfloor\frac{n}{k}\rfloor⌊kn⌋个列里面有有哪些是强制上升,剩下的任意。假设分出来的块大小为aia_iai,则一行方案数为n!∏ai!\frac{n!}{\prod a_i!}∏ai!n!考虑D...原创 2019-09-05 16:36:22 · 197 阅读 · 0 评论 -
【THUWC2017】随机二分图(状压)(容斥)(记忆化搜索)
传送门题解:首先算期望就是对于每一种完美匹配算出现概率然后求个和。如果只有第000类边的话我们可以考虑如下的DP,把现在左侧还没有匹配的点压起来,右侧还没有匹配的点压起来,用一个int表示状态。那么显然我们需要知道的就是这些点自己期望能够产生多少种合法匹配使得自己匹配完。由于边是无序的,转移的时候直接强行枚举一边把集合中编号最小的点搞掉即可。考虑111类边组和222类边组。这两类的...原创 2019-10-08 17:38:48 · 158 阅读 · 0 评论 -
【TJOI2019】唱、跳、rap和篮球(DP)(容斥)
传送门题解:在洛谷看到一群O(n3)O(n^3)O(n3)AC的在嘲讽O(n2logn)O(n^2\log n)O(n2logn)的。。。但是实际上这道题有严格O(n2)O(n^2)O(n2)的解法。。。首先考虑容斥,计算出队伍里面至少有iii组同学在讨论 [数据删除] 的方案数进行容斥。发现是个卷积,于是非常愉快可以O(n2logn)O(n^2\log n)O(n2logn)上一...原创 2019-10-08 21:40:38 · 218 阅读 · 0 评论 -
【校内模拟】欧拉回路(Burnside)(容斥)
简要题意:求解小于等于nnn个点,有欧拉回路,允许有自环的无向图的个数,点标号重排后同构的图算同一种。题解:欧拉图判定就两个条件,连通,所有点度数为偶数。自环先不管,反正对点度和欧拉回路都没有影响。连通先不管,算出所有情况后用不连通容斥算连通,这个应该是一个比较显然的思路。考虑算所有点度数都为偶数的图在允许标号重排下有多少种,就是这道题:here然后现在考虑容斥算连通的答案。由于这个...原创 2019-10-09 17:11:29 · 176 阅读 · 0 评论 -
【校内模拟】Slay(容斥原理)
题解:令f(p,k)f(p,k)f(p,k)表示从[0,n−1][0,n-1][0,n−1]中选择kkk个数,使得和为ppp的倍数的方案数。接下来用一种很诡异的姿势容斥。直接算并不好算,考虑枚举最后有iii个数固定且相同,前面选择k−ik-ik−i个不同的数和为sumsumsum,这两部分分开计算,互不影响。发现会出现i+1i+1i+1个数重复的情况,需要减掉,然后又多减掉了i+2i+2i...原创 2019-07-30 21:44:39 · 367 阅读 · 0 评论 -
2019.01.21【洛谷P5176】公约数(莫比乌斯反演)(Min-Max容斥推结论)
传送门BB:zxyoi做这道题的心路历程大概是这样子的:闲来无事题库乱逛,一搜”约数“出来一道黑题。然后随手就点开了。一看这个式子。。。我。。。好的肯定是要化成两两的gcdgcdgcd不然没法做。日,这个怎么化。。。这个gcd(i,j,k)gcd(i,j,k)gcd(i,j,k)是要干什么?这个gcd(ij,jk,ik)gcd(ij,jk,ik)gcd(ij,jk,ik)又是什...原创 2019-01-21 22:06:13 · 243 阅读 · 0 评论 -
2018.11.05【校内模拟】规避(最短路计数)(容斥)(正难则反)
传送门解析:首先直接统计并不好做,考虑反着做,先求出总共的方案数,然后减去相遇的方案数。总方案数就是SSS到TTT的最短路数量的平方(两人分别作选择)。首先这是个计数类问题,先做一个最短路计数。令distSudistS_udistSu表示SSS到uuu的最短路长度,cntSucntS_ucntSu表示SSS到uuu的最短路数量,distTudistT_udistTu和cntTuc...原创 2018-11-05 14:39:36 · 186 阅读 · 0 评论 -
2018.11.01【BZOJ2393】Cirno的完美算数教室(容斥原理)(DFS)
DarkBZOJ传送门解析:这个首先要分析一下,就算所有2,92,92,9取遍,101010^{10}1010中最多也只有2102^{10}210个数,然后再打表把倍数删去,只有466466466个。而这466466466个的lcmlcmlcm的增长是非常快的,瞬间就会超过RRR的范围,剪枝。所以这道题可以容斥用DFSDFSDFS大力搞一波,从大的数开始枚举会更快。代码:#incl...原创 2018-11-01 19:44:21 · 186 阅读 · 0 评论 -
2018.11.01【NOIP训练】cost数(容斥原理)(DFS)
传送门解析:一眼应该看得出来是一道容斥原理,不然就请回去学习组合数学。然而我就是不知道容斥怎么实现。。。学习了一下用DFSDFSDFS枚举每个选择与不选的情况同时更改系数是111还是−1-1−1就行了。这道题主要的剪枝就是,考虑我们枚举的lcmlcmlcm在某个时刻很容易就超过了上界,这个显然可以直接减掉。代码:#include<bits/stdc++.h>usin...原创 2018-11-01 14:41:44 · 321 阅读 · 0 评论 -
2018.10.30【校内模拟】字胡串(单调栈)(容斥原理)
传送门解析:首先这道题卡空间,虽然说O(nlogn)O(nlogn)O(nlogn)的时间复杂度可过,但是要是空间复杂度不是O(n)O(n)O(n)可能就会咕咕咕。。。思路:首先,发现一个性质,就是满足条件的区间中必然有某个数在某个二进制位上有最大值没有的1。那么我们可以预处理所有数在前缀(后缀)或的结果不变的情况下,向左和向右最远能够延伸的地方。然后我们处理出每个数作为最大值向左向...原创 2018-10-30 22:33:18 · 166 阅读 · 0 评论 -
2018.09.28【BZOJ3566】【洛谷P4284】【SHOI2014】概率充电器(树形DP)(概率DP)(容斥原理)
BZOJ传送门洛谷传送门解析:感觉挺新奇的DPDPDP题。思路:首先看题目,这是一棵树。再看,要求期望数。而这严格来说是求的概率,因为这道题期望就是各个点被充电的概率算术和。而我接下来要介绍一下两种概率的计算。对于互相独立的事件A,BA,BA,B,其中发生任意一件的概率为P(A∣B)=P(A)+P(B)−P(A)∗P(B)P(A|B)=P(A)+P(B)-P(A)*P(B)P(A...原创 2018-09-28 14:32:06 · 214 阅读 · 0 评论 -
2018.10.17【校内模拟】友好国度(点分治)
传送门(内网)解析:AAA的第一道点分治。。。想起来我AAA的第一道数位DPDPDP也是在考场上YYYYYY出来的呢(当时还套了一个状压)思路:看到题目发现很好写暴力,30pts30pts30pts的O(n2)O(n^2)O(n2)和40pts40pts40pts的状压,就把70pts70pts70pts到手了,场上滚去想T2T2T2正解就只写了两个暴力滚粗了。暴力还拿了全场最高分。。...原创 2018-10-17 21:59:24 · 240 阅读 · 0 评论 -
2018.09.02【Atcoder Regular Contest 102】E.Stop. Otherwise...(数学)(容斥原理)(组合数)
传送门解析:数学题解析真的不好写,也不好看懂,建议自己敲一次代码再看一遍解析。。。感觉这位dalao的这篇题解不错.下面说一下我做这道题的思路。。。显然,对于一个iii,如果j&amp;amp;amp;amp;amp;lt;ij&amp;amp;amp;amp;amp;lt;ijjjj被选中,那么我们就不能选i−ji−ji-j(对于偶数,分选一个i/2i/2i/2和不选分类讨论)。而剩下对于答案没有影响的点数就是原创 2018-09-02 12:16:23 · 441 阅读 · 0 评论 -
2019.02.28【HAOI2018】【BZOJ5302】【洛谷P4495】染色(容斥原理)(NTT)
BZOJ传送门洛谷传送门解析:令N=min(⌊ns⌋,m)N=\min(\lfloor\frac{n}{s}\rfloor,m)N=min(⌊sn⌋,m),显然最多只可能有NNN种颜色恰好被染成sss块。考虑将恰好有kkk种被染成sss块的颜色转化成至少有kkk种被染成sss块的颜色来容斥。设这个数为fkf_kfk,现在考虑凑出fkf_kfk。首先选择iii种颜色(mi){m...原创 2019-02-28 23:39:50 · 174 阅读 · 0 评论 -
【51nod1806】wangyurzee的树(prufer序列)(容斥原理)
传送门题解:关于度数的限制我们可以考虑放到prufer序列上。一个点的度数就是它在prufer序列中出现次数+1。所以问题就变成了一个长度为n−2n-2n−2的序列,每个位置的数可以是[1,n][1,n][1,n]中间的任意整数,限制某些数出现次数不能为某个值,求方案数。很显然的容斥,考虑用总方案数减去所有不合法的方案,就是求满足0,1,2⋯m0,1,2\cdots m0,1,2⋯m个...原创 2019-07-14 21:30:28 · 215 阅读 · 0 评论 -
【SHOI2016】【洛谷P4336】【BZOJ4596】黑暗前的幻想乡(容斥原理)(矩阵树)
洛谷传送门BZOJ传送门题解:很显然我们将恰好包含所有n−1n-1n−1种转化为,最多包含n−1n-1n−1种-最多包含n−2n-2n−2种+最多包含n−3n-3n−3种⋯\cdots⋯。然后矩阵树随便做吧。太久没写矩阵树了,差点忘记行列式交换两行需要乘−1-1−1,虽然矩阵树根本不用考虑这个,因为我这种写法种需要交换两行的情况答案一定是0代码:#include<bits/...原创 2019-07-14 20:10:46 · 183 阅读 · 0 评论 -
【TC SRM 555 1055】【TC 12152】MapGuessing(容斥原理)(复杂度分析)
传送门题解:很显然地,我们可以处理出每个位置作为开头的时候,序列中的哪些位置可以在初始取任意值,显然不会出现两个位置不能同时取任意值的情况。我们发现固定开头为iii的时候答案就是2∣Si∣2^{|S_i|}2∣Si∣,其中SiS_iSi是iii为开头的时候可以任意取的位置集合。如果直接统计,显然可能会重复。大力容斥就行了,由于我们要求求得的序列至少满足某一个SiS_iSi,直接用A...原创 2019-07-14 19:13:43 · 180 阅读 · 0 评论 -
【TC SRM 548 DIV1 1000】【TC 12104】KingdomAndCities(容斥原理)(分类讨论)
传送门题解:注意,代码实现里面按照习惯用kkk表示限制了度数的点数,nnn表示节点个数,mmm表示边数,以下推导过程中变量意义与上述描述一致。很显然地,我们知道kkk那么小,我们可以考虑对k=0,1,2k=0,1,2k=0,1,2的情况进行分类讨论。其实也有增加单次询问复杂度来减少分类讨论的做法,这里给出一个预处理之后单次回答O(1)O(1)O(1)的做法。k=0k=0k=0k=0的...原创 2019-07-13 10:51:03 · 262 阅读 · 0 评论 -
【51nod1355】斐波那契的最小公倍数(Min-Max容斥)(莫比乌斯反演)
传送门题解:首先所有相同的数只保留一个。然后由于gcdgcdgcd和lcmlcmlcm可以表示成各个质因子的次数取max\maxmax和min\minmin的情况,我们由Min−MaxMin-MaxMin−Max容斥可以得到:lcm(S)=∏T⊂Sgcd(T)−1∣T∣+1lcm(S)=\prod_{T\sub S}gcd(T)^{-1^{|T|+1}}lcm(S)=T⊂S∏gcd...原创 2019-07-02 17:00:41 · 263 阅读 · 0 评论 -
【FJWC2019】子图(容斥)(三元环/四元环计数)
hhh原创 2019-06-19 20:47:24 · 1031 阅读 · 0 评论 -
2018.09.01 【NOI2010】能量采集 (容斥原理)
传送门解析:不明白NOINOINOI的题为什么会有非码农向。。。这道题可以用莫比乌斯反演,稍后我会更新莫比乌斯反演的题解。但其实这道题最好的做法是容斥。。。回去先看题,发现每个点(i,j)(i,j)(i,j)损失能量等于gcd(i,j)∗2−1gcd(i,j)∗2−1gcd(i,j)*2-1。。。似乎有点用。考虑统计gcd(i,j)==dgcd(i,j)==dgcd...原创 2018-09-01 18:23:29 · 288 阅读 · 0 评论