
组合数学
文章平均质量分 91
zxyoi_dreamer
退役了退役了爬了爬了,搞个锤子算法竞赛,不如好好享受大学生活。
展开
-
【Atcoder Grand Contest 043】【AGC043】B - 123 Triangle(组合数学)(Lucas定理)
传送门题解:首先答案只可能是 0,1,20,1,20,1,2,原序列我们也以 0,1,20,1,20,1,2 来考虑。直接利用 LucasLucasLucas 定理可以算出答案是奇数还是偶数,如果是奇数,那肯定是 111。否则如果原序列有 111,答案不可能是 222,证明只提一点,不多赘述:在序列变为全 000 之前,会一直有至少一个位置是 111 。否则原序列是 0,20,20,2...原创 2020-03-24 21:06:51 · 387 阅读 · 0 评论 -
【CometOJ4304】小 C 的奇妙序列(组合意义)(正整数拆分)(一言难尽)
传送门题解:花了整整三个小时。。。一开始往期望的线性性考虑,花了半天时间拆式子发现是个套娃整个人都不好了。然后突然发现了这个东西的组合意义。考虑我们每个点 iii 向 [0,i)[0,i)[0,i) 随机连出 kkk 条边,允许重边且每条边互不相同,从点 000 跑出 kkk 个不同的小球,全部走到 nnn 的方案数,注意每条边都允许多个球通过。这道题问的期望就是所有连边方案下上面的...原创 2020-03-14 19:23:36 · 361 阅读 · 0 评论 -
【USACO20FEB】Help Yourself P(线段树)(二项式展开)
传送门题解:首先这种求 kkk 次幂,kkk又那么小,显然就是二项式展开维护各个自然幂之和。于是一个比较显然的想法就是考虑一个一个加入,那么会有一部分不变,另一部分+1,维护总和和其中某个部分即可。按照左端点排序加入,维护一下右端点的前缀和即可。代码:#include<bits/stdc++.h>#define ll long long#define re regi...原创 2020-03-11 17:47:30 · 548 阅读 · 0 评论 -
【校内模拟】简单粗暴的题目(二项式展开)
简要题意:给一个长为 nnn 的数列 aaa 和一个正整数 kkk,对于 i=1,2…,ni=1,2\dots,ni=1,2…,n,求:ansi=∑j=1i(∑l=jial)kans_i=\sum_{j=1}^i(\sum_{l=j}^ia_l)^kansi=j=1∑i(l=j∑ial)k题解:设 sss 表示 aaa 的前缀和。ansi=∑j=1i(∑l=jial)k=∑...原创 2020-03-04 17:08:54 · 291 阅读 · 0 评论 -
【校内模拟】小B的班级(贪心)(组合数学)
简要题意:给一棵 nnn 个点的树,边有边权。现在有 mmm 个A类点, mmm 个B类点,两两不同,这 2m2m2m 个点在树上选定位置 (可以有多个点在同一个位置),然后进行配对,最大化配对点的距离之和,问所有方案的距离之和是多少。n,m≤2.5e3n,m\leq 2.5e3n,m≤2.5e3题解:经典结论 (虽然我已经忘了上次见是在什么时候) ,直接考虑每条边被经过多少次,假设其中...原创 2020-02-08 15:15:12 · 392 阅读 · 0 评论 -
【校内模拟】矩阵求和(组合数转下降幂转自然幂)(斯特林数)(树状数组)
简要题意:一个 n×mn\times mn×m 矩阵,第 iii 行第 jjj 列的权值为 (i−1)⋅m+j(i-1)\cdot m + j(i−1)⋅m+j,需要你支持一下三种操作:R,交换两行C,交换两列Q,询问对一个子矩阵求 kkk 次二维前缀和后矩阵中元素之和。数据范围n,m,Q≤1e5,k≤10n,m,Q\leq 1e5,k\leq 10n,m,Q≤1e5,k≤10题...原创 2020-02-05 21:09:35 · 500 阅读 · 0 评论 -
【CTSC2019】随机立方体(二项式反演)
传送门题解:以下假设n≤m≤ln\leq m\leq ln≤m≤l一看模数我还以为要上多项式全家桶。。。按照套路,看到“恰好”二字觉得并不对劲。。。但是你当你尝试计算“至少”的时候你觉得更不对劲,因为显然有大量的重复部分被计算,感觉计算“至少”这个东西本来就要容斥。容斥套容斥???考虑计算钦定iii个位置成为极大的概率fif_ifi。然后二项式反演得到答案为ans=∑i=kn(ik...原创 2019-11-01 22:05:37 · 208 阅读 · 0 评论 -
【BJOI2019】勘破神机(下降幂转自然幂)(第一类斯特林数)(特征方程)
传送门题解:完全自己推出来的第一道数学神题。首先我们知道宽度为222的部分方案数是斐波那契数列。设fnf_nfn表示长度为nnn的时候方案数,题目要求的实际上是这个东西:∑n=lr(fnk)\sum_{n=l}^r{f_n\choose k}n=l∑r(kfn)看上去非常地不可做,考虑表示成下降幂的形式,然后利用第一类斯特林数直接转成自然幂,直接上通项公式,然后利用二项式定理...原创 2019-10-18 19:38:05 · 357 阅读 · 0 评论 -
【LOJ6363】「地底蔷薇」(拉格朗日反演)(多项式全家桶)
传送门题解:代码:#include<bits/stdc++.h>#define ll long long#define re register#define cs constusing std::cerr;using std::cout;cs int mod=998244353;inline int add(int a,int b){return (a+=b...原创 2019-08-15 18:07:02 · 433 阅读 · 0 评论 -
【CF932E】Team Work(斯特林数)
传送门题解:首先我们要求的是这个式子:Ans=∑i=1n(ni)ikAns=\sum_{i=1}^n{n\choose i}i^kAns=i=1∑n(in)ik然而nnn贼大,并不能承受,考虑从kkk下手,由第二类斯特林数,我们知道:Ans=∑i=1n(ni)ik=∑i=1n(ni)∑j=1k(ij)j!Sk,j=∑j=1kSk,j∑i=1nn!(n−i)!i−j!=∑j=1kSk...原创 2019-08-15 20:50:35 · 181 阅读 · 0 评论 -
【CF960G】Bandit Blues(斯特林数)(NTT)
传送门补档计划无题解。代码:#include<bits/stdc++.h>#define ll long long#define re register#define cs constusing std::cerr;using std::cout;cs int mod=998244353;inline int add(int a,int b){a+=b-mo...原创 2019-08-21 10:29:27 · 178 阅读 · 0 评论 -
【CF961G】Partitions(第二类斯特林数)(线性筛)
传送门题解:考虑这个划分的组合意义。实际上就是每个数对同组的数的最终权值都有自己www的贡献。考虑一个数对所有数的贡献。对自己的贡献的系数显然是Sn,kS_{n,k}Sn,k,对其他数的贡献显然是(n−1)⋅Sn−1,k(n-1)\cdot S_{n-1,k}(n−1)⋅Sn−1,k用第二类斯特林数通项公式求一下就行了。代码:#include<bits/stdc++....原创 2019-08-21 11:15:55 · 244 阅读 · 0 评论 -
【HackerRank-costly-graphs】【BZOJ5093】图的价值(第二类斯特林数)(NTT)
传送门题解:首先我们的需要一个答案的表达式。考虑111号点的度数,该度数能够出现在多少种图中,以及nnn个点等价。以下用mmm暂代原题意中的kkk。我们可以得到答案的表达式:Ans=n⋅2(n−12)∑i=0n−1(n−1i)imAns=n\cdot 2^{n-1\choose 2}\sum_{i=0}^{n-1}{n-1\choose i}i^mAns=n⋅2(2n−1)i=0∑...原创 2019-08-16 21:03:02 · 196 阅读 · 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 · 272 阅读 · 0 评论 -
【模板】【洛谷P5396】第二类斯特林数·列(倍增)(NTT)
传送门题解:考虑第二类斯特林数的列生成函数Fk(x)=∑i=kSi,kxiF_{k}(x)=\sum_{i=k}S_{i,k}x^iFk(x)=∑i=kSi,kxi根据递推式Sn,i=Sn−1,i−1+iSn−1,iS_{n,i}=S_{n-1,i-1}+iS_{n-1,i}Sn,i=Sn−1,i−1+iSn−1,i我们有Fk(x)=x1−kxFk−1(x)F_k(x)=\fr...原创 2019-08-13 21:22:00 · 241 阅读 · 0 评论 -
【模板】【洛谷P5409】第一类斯特林数·列(多项式Exp)(多项式快速幂)
传送门题解:感觉求这个玩意的方法略迷,记录一下这个清奇的思路。考虑展开(1+x)t(1+x)^t(1+x)t(1+x)t=∑i=0∞(ti)xi=∑i=0∞xiti‾i!=∑i=0∞xii!∑j=0i[ij](−1)i−jtj=∑j=0∞tj∑i=j∞xiii−j\begin{aligned}(1+x)^t&=&&\su...原创 2019-08-13 19:50:43 · 205 阅读 · 0 评论 -
【模板】【洛谷P5395】第二类斯特林数·行(二项式反演)(NTT)
传送门题解:由幂转下降幂的式子:in=∑j=1nSn,jij‾i^n=\sum_{j=1}^nS_{n,j}i^{\underline{j}}in=j=1∑nSn,jij我们知道in=∑j=1iSn,jj!(ij)i^n=\sum_{j=1}^iS_{n,j}j!{i\choose j}in=j=1∑iSn,jj!(ji)其实上面的下标可以从000开始,直接二项式反演得到:...原创 2019-08-13 20:18:08 · 276 阅读 · 0 评论 -
【LOJ6247】九个太阳(单位根反演)(二项式定理)
传送门题解:设www为kkk次单位根,由单位根求和引理和二项式定理,可以将我们需要求的东西转化为:Ans=∑i=0k−1(wi+1)nAns=\sum_{i=0}^{k-1}(w^i+1)^nAns=i=0∑k−1(wi+1)n代码:#include<iostream>#define ll long long#define re register#define c...原创 2019-07-27 14:43:25 · 256 阅读 · 0 评论 -
【HDU5321】Beautiful Set(组合数学)(莫比乌斯反演)
传送门题解:题意简单描述如下:给出一个长为nnn的数组,求两种计算方式的算出来的权值:对于所有n!n!n!种不同的排列,计算所有区间gcd之和(该数组中相同数不按照相同算,比如如果数组为{21,22,3}\{2_1,2_2,3\}{21,22,3},那么{2,2,3}\{2,2,3\}{2,2,3}这个排列需要算两次,分别为{21,22,3}\{2_1,2_2,3\}{21,22...原创 2019-07-22 10:38:12 · 218 阅读 · 0 评论 -
【校内模拟】Quests(组合数学)(反向计数)
传送门,肯定是没有的。题解:可以很显然地发现,只有当包含当前位置的询问集合不同的时候,我们能够区分这些位置。定义一个不可识别子串[l,r][l,r][l,r]为其左右位置无法区分的子串。定义一个极长不可识别子串[l,r][l,r][l,r]为一个不可识别子串,且不存在任何l′≤l,r′≥rl'\leq l ,r'\geq rl′≤l,r′≥r,[l′,...原创 2019-07-30 21:24:01 · 304 阅读 · 0 评论 -
【TC SRM 686 Div1】【TC 14199】CyclesNumber(斯特林数)
传送门题解:首先我们可以直接知道答案为∑sn,k⋅km\sum{s_{n,k}\cdot k^m}∑sn,k⋅km用数学方法处理稍微麻烦了一点,考虑其组合意义。设xix_ixi表示循环iii是否出现,则一个置换的权值为(∑xi)m(\sum x_i)^m(∑xi)m展开,考虑其中由某kkk个项组成的项的系数,相当于是mmm个物品划分到kkk个带标号集合中的方案数,则系数为Sm,k...原创 2019-08-21 14:54:39 · 164 阅读 · 0 评论 -
【模板】【洛谷5408】第一类斯特林数·行(倍增)(NTT)
传送门题解:首先我们设第一类斯特林数生成函数为Fn(x)=∑i=0nsn,ixi=xnˉF_n(x)=\sum_{i=0}^n s_{n,i}x^i=x^{\bar n}Fn(x)=∑i=0nsn,ixi=xnˉ则对于奇数的nnn,可以直接递归处理Fn−1F_{n-1}Fn−1,然后O(n)O(n)O(n)乘上一个一次多项式。对于偶数的nnn,可以处理出Fn/2F_{n/2}Fn...原创 2019-08-12 21:07:23 · 295 阅读 · 0 评论 -
【HNOI2019】多边形(二叉树)(组合数学)
传送门题解:想到了以前做过的一道树上标号分配的题,然后就迅速切掉这道题了。少见的连我都能切的HNOI题了。很容易发现终止状态是所有对角线全部指向nnn的情况。也很容易发现最少步数为n−1−所有与n直接连接的边数n-1-所有与n直接连接的边数n−1−所有与n直接连接的边数,这里的边数包括111和n−1n-1n−1。那么要求就是每一步操作必须把一个原来没有和nnn连接的边改成和nnn连接...原创 2019-09-03 16:48:21 · 214 阅读 · 0 评论 -
【洛谷P4916】魔力环(Burnside)(组合数学)
传送门题解:看到旋转同构,考虑Burnside。旋转同构中常见的phi的转化就不提了。直接考虑循环个数为ddd的时候的答案。显然只有当d∣nd\mid nd∣n且d∣md\mid md∣m的时候答案非0。特判掉n=mn=mn=m和m=0m=0m=0的情况。现在环上必然有黑色和白色。设N=n/d,M=m/dN=n/d,M=m/dN=n/d,M=m/d,接下来分类讨论。如果M≤KM...原创 2019-09-02 20:09:15 · 289 阅读 · 0 评论 -
【校内模拟】简单题(容斥)(斯特林反演)(背包)
[]原创 2019-09-01 20:47:14 · 342 阅读 · 0 评论 -
【LOJ547】「LibreOJ β Round #7」匹配字符串(常系数齐次线性递推)(Lucas定理)
传送门题解:首先我们知道这玩意可以直接DP。设fif_ifi表示长度为iii的串,以000结尾的合法方案数,则有转移fn=∑i=n−mn−1fif_n=\sum_{i=n-m}^{n-1}f_ifn=i=n−m∑n−1fi 很显然可以直接用线性递推搞,多项式取模的时候由于前面的系数全部都是111,可以记录一下前面的和优化到O(m)O(m)O(m)。上面的做法只能在mmm较小的时候...原创 2019-08-30 19:31:22 · 554 阅读 · 0 评论 -
【51nod1847】奇怪的数学题(杜教筛)(min_25筛)(第二类斯特林数)
传送门题解:神题。首先设h(gcd(i,j))=sgcd(i,j)h(gcd(i,j))=sgcd(i,j)h(gcd(i,j))=sgcd(i,j),则h(n)=nmnp(n)h(n)=\frac{n}{mnp(n)}h(n)=mnp(n)n则我们要求Ans=∑i=1n∑j=1nh(gcd(i,j))k=∑d=1nh(d)k∑i=1⌊nd⌋∑j=1⌊nd⌋[gcd(i,j)]=1=∑...原创 2019-08-28 20:12:26 · 203 阅读 · 0 评论 -
【JXOI2018】游戏(埃氏筛)(组合数学)
传送门题解:我们发现,对于[l,r][l,r][l,r]内,没有除自己以外的因子在[l,r][l,r][l,r]是我们必须筛掉的,而且完成任务当且仅当把具有上述特征的数筛完。直接埃氏筛统计有多少个数,设为ctctct,然后组合数算一下。考虑答案为iii的方案有多少种,我们得到:∑i=ctni⋅(i−1ct−1)⋅ct!⋅(n−ct)!\sum_{i=ct}^ni\cdot {i-1\c...原创 2019-08-28 15:23:11 · 166 阅读 · 0 评论 -
【BZOJ4305】数列的GCD(莫比乌斯反演)(组合数学)
传送门题解:我们考虑算出F[d]F[d]F[d]表示所有d∣gcdd\mid gcdd∣gcd的方案之和,然后莫比乌斯反演就行了。但是实际上我们发现从大往小算可以直接用减法来容斥,就不用莫比乌斯反演了。代码:#include<bits/stdc++.h>#define ll long long#define re register#define gc get_cha...原创 2019-08-27 20:49:22 · 217 阅读 · 0 评论 -
【2017集训队作业】小c的岛屿(斯特林反演)(期望)(高斯消元)
题面:有 nnn 座岛屿,初始时没有边。每座岛屿都有一个概率值 pip_ipi 和一个友好列表 AiA_iAi。小 c 站在 111 号岛屿,依次执行以下操作:设现在在岛屿 xxx,有 pxp_xpx 的概率产生一条图中不存在的随机无向边,不会产生自环。如果此时所有岛屿仍未连通,他会在当前点的友好列表中,随机选择一个,走到那座岛屿上,并把不满意度 +1+1+1,然后重复第 111 ...原创 2019-08-27 14:55:32 · 424 阅读 · 0 评论 -
【集训队2011】【洛谷P4827】【HDU4625】Crash 的文明世界/JZPTREE(第二类斯特林数)(树形DP)
HDU传送门题解:求的东西形式非常简单:S(i)=∑j=1ndis(i,j)kS(i)=\sum_{j=1}^ndis(i,j)^kS(i)=j=1∑ndis(i,j)k首先这玩意可以非常简单地二项式展开,单次转移就被卡到O(k2)O(k^2)O(k2)了。考虑利用斯特林数将普通幂转到下降幂:xn=∑i=0nSn,ixi‾x^n=\sum_{i=0}^{n}S_{n,i}x^{\un...原创 2019-08-16 19:53:59 · 141 阅读 · 0 评论 -
【CodeChef-EASYEX】Easy exam(斯特林数)(FFT)
传送门题解:设xi,jx_{i,j}xi,j表示第iii次是否扔出了jjj,则我们要求的就是∏i=1L(∑j=1nxj,i)F\prod_{i=1}^L(\sum_{j=1}^nx_{j,i})^Fi=1∏L(j=1∑nxj,i)F的期望。考虑这个式子完全展开后的某一项,假设有zzz个xj,ix_{j,i}xj,i,则系数为SF,zz!S_{F,z}z!SF,zz!,所有的有...原创 2019-08-21 21:46:59 · 324 阅读 · 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 · 276 阅读 · 0 评论 -
【CF814E】 An unavoidable detour for home(组合数学)(DP)
传送门题解:由题目给出的两个限制:1.从1到所有点的最短路唯一2.1到iii的距离不小于1到i+1i+1i+1的距离我们可以很显然地发现图可以这样生成:BFS树就是最短路树,且每个点向深度浅的边的连线只有一条同层的点的编号连续,且非树边只可能是同层的点之间的连边。设f[i][j]f[i][j]f[i][j]表示考虑前iii个点的时候,最后jjj个点和iii点在同一层时候的...原创 2019-07-14 16:05:09 · 339 阅读 · 0 评论 -
【BZOJ4403】序列统计(组合数学)(Lucas定理)
传送门题解:我考虑所有长度不到NNN的全部用R+1R+1R+1填满到NNN,那么现在考虑计算所有权值在[L,R+1][L,R+1][L,R+1]中,长度为NNN的合法序列个数,最后减掉111,因为有一个串会全部都是R+1R+1R+1。考虑每种权值的有几个,显然是一个球盒问题,[L,R+1][L,R+1][L,R+1]每种权值是一个盒子,一共有NNN个球,方案数为(R−L+1+NN){R-L...原创 2019-07-13 19:51:20 · 213 阅读 · 0 评论 -
【BZOJ4498】魔法的碰撞(DP)(组合数学)
传送门题解:首先将did_idi全部−1-1−1,方便下面叙述。首先我们假设某个排列ppp中,魔法师之间站得尽可能紧之后中间空的格子个数为x=∑i=1n−1max(dpi,dpi+1)x=\sum\limits_{i=1}^{n-1}\max(d_{p_i},d_{p_{i+1}})x=i=1∑n−1max(dpi,dpi+1)(显然这时候格子是最少的),那么按照这个顺序的来...原创 2019-07-13 17:04:42 · 444 阅读 · 0 评论 -
2018.10.31【校内模拟】几串字符(数位DP)(球盒问题)
传送门解析:这个数位DP是O(len)O(len)O(len)的。。。只需要预处理组合数就行了。。。思路:首先注意到几个性质。1.c0,1+1≥c1,0≥c0,1c_{0,1}+1≥c_{1,0}≥c_{0,1}c0,1+1≥c1,0≥c0,1这个很显然,因为1/01/01/0区间的出现是交替的。2.c1,0+c0,0c_{1,0}+c_{0,0}c1,0+c0,0是0出...原创 2018-11-01 16:02:22 · 149 阅读 · 0 评论 -
2018.10.30【校内模拟】排列树(组合数学)
传送门解析:考场上没想到是组合数学,瞎打了一个O(n!)O(n!)O(n!)暴力滚粗了。但是下来一看真的是组合数学sb题。。。思路:首先我们不要考虑标号的值域,我们只需要求出节点标号之间有多少可能的偏序关系,而不是求出实际的标号有多少种分配方式。考虑我们现在求出了某个子树的标号偏序方案数。那么我们需要合并uuu两个子树来更新现在的以uuu为根的子树的偏序方案数。首先根据乘法原理,...原创 2018-10-30 16:49:16 · 182 阅读 · 0 评论 -
2018.10.24【NOIP练习】Leo的组合数问题(组合数学)(莫队)
传送门解析:总是忍不住要吐槽一句,这题面也太长了吧。。。首先,肯定要把我们要求的东西推成一个式子,不然怎么可能做题。。。设fif_ifi表示当前以iii为最大值的方案数。那么iii之后的数显然是单调递减且连续,方案数为111。考虑前i−1i-1i−1个位置,放法数就是∑j=1i−1fj\sum_{j=1}^{i-1}f_j∑j=1i−1fj所以我们现在得到递推式fi=∑j=1...原创 2018-10-24 23:36:57 · 225 阅读 · 0 评论 -
2018.10.25【NOIP练习】01矩阵(组合数学)(数学期望)
传送门解析:请先确保你看懂了OJ上的提示的暴力做法再来看这个题解。既然你已经会暴力了,那进入正题。实际上我们就没有必要计算每个矩阵并求和,我们只需要枚举每个iii并计算min{Bi}=imin\{B_i\}=imin{Bi}=i的矩阵有多少个就行了。现在考虑令矩阵一行的和为iii的方案数fif_ifi,显然fi=Cmi×xm−i×yif_i=C_m^i\times x^{m-i}\...原创 2018-10-25 21:43:37 · 1981 阅读 · 0 评论