
组合数学
文章平均质量分 69
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 评论 -
【UR #19】通用测评号(生成函数 / 组合数学)
传送门感觉和喂鸽子有点像但是由于智商欠费完全想不出考虑对于一个舱,计算其满的时候有多少还有没半满的舱的概率最后乘以nnn即可考虑容斥强制有ppp个没满那么容斥系数就是(n−1p)(−1)p−1{n-1\choose p}(-1)^{p-1}(pn−1)(−1)p−1考虑转成序列问题即序列值域为[0,p][0,p][0,p],出现aaa个000时1−p1-p1−p均出现少于bbb...原创 2020-04-09 00:17:52 · 414 阅读 · 0 评论 -
【省选模拟】 Fac(生成函数 / 拉格朗日反演 / 组合数学)
题意:∀i∈[0,n),求ki!(ki−i)!\forall i\in[0,n),求\frac{ki!}{(ki-i)!}∀i∈[0,n),求(ki−i)!ki!考场用快速阶乘的套路整了一个nnlognn\sqrt nlognnnlogn结果只有暴力分考虑求的(kii−1)/i∗((ki−i+1)∗i!){ki\choose i-1}/i*((ki-i+1)*i!)(i−1ki)/i∗(...原创 2020-03-29 18:24:06 · 540 阅读 · 2 评论 -
【洛谷 P5824】 十二重计数法(组合数学 / 多项式Exp)
传送门1:mn1:m^n1:mn2:mn‾2:m^{\underline n}2:mn3:S(n,m)m!,S3:S(n,m)m!,S3:S(n,m)m!,S为第二类斯特林数4:∑i=0mSn,i4:\sum_{i=0}^mS_{n,i}4:∑i=0mSn,i5:[n≤m]5:[n\le m]5:[n≤m]6:S(n,m)6:S(n,m)6:S(n,m)7:(n+m−1m−1...原创 2020-03-24 19:47:38 · 574 阅读 · 0 评论 -
【Codeforces 961 G】Partitions(组合数学)
传送门每个集合权值有一个∣S∣|S|∣S∣考虑一个集合权值的组合意义可以看做对于每个数,集合里每个数都对他计算一次于是对于每个数考虑他被计算多少次如果自己对自己,显然就是S(n,k)S(n,k)S(n,k)次,SSS为第二类斯特林数否则别的n−1n-1n−1个和自己一个集合的方案就是S(n−1,k)∗(n−1)S(n-1,k)*(n-1)S(n−1,k)∗(n−1)次O(n)O(n)...原创 2020-03-24 19:38:36 · 339 阅读 · 0 评论 -
【Comet OJ - Contest #16 G】小 C 的奇妙序列(组合数学 / DP)
传送门首先记一下k=2k=2k=2的一个做法就是求平方的期望一个想法是直接期望DPDPDP考虑E(an2)E(a_n^2)E(an2)考虑求E((∑i=1nai)2)E((\sum_{i=1}^na_i)^2)E((∑i=1nai)2)拆开后是要求E(ai2),E((∑i=1n−1ai)2)E(a_i^2),E((\sum_{i=1}^{n-1}a_i)^2)E(ai2),E...原创 2020-03-14 20:14:21 · 338 阅读 · 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 评论 -
【51nod 1229】 序列求和 V2(组合数学)
传送门若r=1r=1r=1就直接拉格朗日插值否则设gk(n)=∑i=1nikrig_k(n)=\sum_{i=1}^ni^kr^igk(n)=∑i=1nikrirgk(n)=∑i=2n+1(i−1)krirg_k(n)=\sum_{i=2}^{n+1}(i-1)^kr^irgk(n)=i=2∑n+1(i−1)kri(r−1)gk(n)=rn+1nk−r+∑i=2nri((i−1)...原创 2020-02-06 20:52:45 · 304 阅读 · 0 评论 -
【BZOJ 3462】DZY Loves Math II(组合数学+DP)
传送门显然可以发现s=∏i=1kpis=\prod_{i=1}^{k}p_is=∏i=1kpi时答案才不为000考虑把每个pip_ipi的贡献表示为ki∗s+bi∗pik_i*s+b_i*p_iki∗s+bi∗pi的形式(bipi<s)(b_ip_i<s)(bipi<s)那么最终也就是s∑ki+∑bipi=ns\sum k_i+\sum b_ip_i=ns∑...原创 2020-01-19 19:14:35 · 326 阅读 · 0 评论 -
【LOJ #6432】「PKUSC2018」真实排名(组合数学)
传送门傻逼组合数学考虑每个人翻不翻倍讨论即可注意a=0a=0a=0的情况无聊写了个平衡树玩#include<bits/stdc++.h>using namespace std;#define cs const#define re register#define pii pair<int,int>#define fi first#define se se...原创 2019-12-18 21:06:41 · 158 阅读 · 0 评论 -
【BZOJ4671】—异或图(斯特林反演+线性基)
传送门原创 2019-09-10 18:06:56 · 190 阅读 · 0 评论 -
【NOIp2019模拟】T3—简单题(斯特林反演+整数拆分)
传送门原创 2019-09-04 15:03:27 · 258 阅读 · 0 评论 -
【TJOI2019 Day1】简要题解
T1:傻逼题,一个裸的矩乘就完了#include<bits/stdc++.h>using namespace std;const int RLEN=1<<20|1;inline char gc(){ static char ibuf[RLEN],*ib,*ob; (ob==ib)&&(ob=(ib=ibuf)+fread(ibuf,...原创 2019-09-03 13:00:48 · 150 阅读 · 0 评论 -
【BZOJ5323】【JXOI2018】—游戏(组合数学+线性筛)
传送门考虑有一些房间是必须要去的其实就是把[l,r][l,r][l,r]的数做线性筛后剩下的那些质数和没被筛去的合数设有xxx个然后考虑实际上要找到就是每个情况最后一个要去的在第几个考虑枚举最后一个数的位置ans=∑i=1n(i−1x−1)∗x!∗(n−x)!ans=\sum_{i=1}^{n}{i-1\choose x-1}*x!*(n-x)!ans=∑i=1n(x−1i−1)...原创 2019-08-21 21:42:38 · 168 阅读 · 0 评论 -
【BZOJ4402】—Claris的剑(组合数学)
传送门由于只关注每个数出现了多少次所以一种情况一定可以表示成1,2,3,4,3,4,3,4……m−1,m1,2,3,4,3,4,3,4……m-1,m1,2,3,4,3,4,3,4……m−1,m或者1,2,3,4,3,4,3,4……m−1,m,m−11,2,3,4,3,4,3,4……m-1,m,m-11,2,3,4,3,4,3,4……m−1,m,m−1的亚子设最大值为mmm则首先一定有一...原创 2019-07-13 20:50:02 · 182 阅读 · 0 评论 -
【BZOJ4498】—魔法的碰撞(组合数学+dp)
传送门首先我们发现一个排列,2个魔法使之间一定要填max(di,di+1)−1max(d_i,d_{i+1})-1max(di,di+1)−1个格子而如果总共一定要填的为kkk个,贡献就是(L−kn){L-k\choose n}(nL−k)考虑dpdpdp出每种情况的方案数首先按ddd从大到小排序消除maxmaxmax我们发现一个魔法师的贡献只和他左右2边的人比他大还是小我们考...原创 2019-07-13 21:03:07 · 177 阅读 · 0 评论 -
【TopCoder SRM548 Div1】—KingdomAndCities(组合数学)
传送门首先k=0k=0k=0的情况我们只需要求出f[i][j]f[i][j]f[i][j]表示iii个点jjj条边的连通图个数只需要和城市规划差不多的方法,枚举一号点所在连通块大小算不合法情况加一维边数O(n2m2)dpO(n^2m^2)dpO(n2m2)dp解决(好像也可以高维卷积n2log2n^2log^2n2log2)k=1k=1k=1大力分类讨论若除去点111图仍联通,就...原创 2019-07-13 21:10:38 · 201 阅读 · 0 评论 -
雅礼集训Day5 T3—Permutation(斯特林数+NTT)
n≤200000n\le 200000n≤200000令f(i,j)f(i,j)f(i,j)表示有iii个数,jjj个数是jmjmjm的方案数那有f[i][j]=S1(i,j)f[i][j]=S1(i,j)f[i][j]=S1(i,j)证明是显然的,任意分配成jjj个环,每个环最大值的位置一定是最后一个其他随意分配那显然ans=∑i=1nf(i−1,a−1)∗f(n−i,b−1)∗(n...原创 2019-07-24 20:30:00 · 251 阅读 · 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 评论 -
【洛谷 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 评论 -
【洛谷 P5408】【模板】—第一类斯特林数·行(倍增+NTT)
传送门斯特林数学习笔记考虑构造生成函数Fn=∑i=0∞s(n,i)xiF_n=\sum_{i=0}^{\infty}s(n,i)x^iFn=∑i=0∞s(n,i)xi由第一类斯特林数的递推式可得Fn=xFn−1+(n−1)F(n−1)=(x+n−1)F(n−1)=xn‾F_n=xF_{n-1}+(n-1)F(n-1)=(x+n-1)F(n-1)=x^{\overline n}Fn=...原创 2019-08-15 21:57:58 · 259 阅读 · 0 评论 -
【TopCoder SRM 686】—CyclesNumber(斯特林数)
传送门一个置换可以看做若干个循环拼起来ans=∑i=1nsn,iimans=\sum_{i=1}^{n}s_{n,i}i^mans=∑i=1nsn,iim暴力推一波式子ans=∑i=1nsn,i∑j=0mSm,j(ij)j!ans=\sum_{i=1}^{n}s_{n,i}\sum_{j=0}^{m}S_{m,j}{i\choose j}j!ans=∑i=1nsn,i∑j=0m...原创 2019-08-21 18:58:09 · 232 阅读 · 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 评论 -
【BZOJ5305】【HAOI2018】—苹果树(组合数学)
传送门考虑枚举每一个iii,以及它的子树大小jjj显然对于iii和他父亲的边的贡献就是j∗(n−j)j*(n-j)j∗(n−j)考虑一个大小为nnn的二叉树,它所有可能的形态有n!n!n!种那么对于点iii,这时整棵树形态有i!i!i!种那么大小为jjj的树的方案数就是之后n−in-in−i个点种填入j−1j-1j−1个点的可能乘上这个二叉树所有的形态,即Cj−1n−i∗j!C_{j-1...原创 2019-02-28 11:09:16 · 184 阅读 · 0 评论