生成函数
文章平均质量分 87
FSYo
我不去想是否能够成功,
既然选择了远方,
便只顾风雨兼程
展开
-
有机化学基础
是不是标题党了?请确保您不是来学化学的烷基计数注意到烷基相当于是有根树,这样会简单很多我们用 burnsideburnsideburnside 引理处理子树同构,列出式子就是F(z)=z[F(z)3+3F(z2)F(z)+2F(z3)6]+1F(z)=z\Big[\frac{F(z)^3+3F(z^2)F(z)+2F(z^3)}{6}\Big]+1F(z)=z[6F(z)3+3F(z2)F(z)+2F(z3)]+1考虑倍增,那么 z,zF(z2),zF(z3)z,zF(z^2),zF(z^3)z原创 2020-08-27 14:11:10 · 548 阅读 · 0 评论 -
经典数数题
「PKUWC2018」猎人杀我们硬点一个集合在 1 后面死然后容斥考虑每次在 [1,n][1,n][1,n] 随机,如果不在集合 SSS 中就跳过,那么每个人死亡的概率是一样的,证明如下wt∑i∈Swi=wt∑i=1nwi(∑i=0n(∑j=1nwj−∑j∈Swj∑j=1nwj)i)\frac{w_t} {\sum_{i\in S}w_i}=\frac{w_t}{\sum_{i=1}^nw_i}(\sum_{i=0}^n(\frac{\sum_{j=1}^nw_j-\sum_{j\in S}w_j}原创 2020-05-22 16:14:21 · 417 阅读 · 1 评论 -
Codeforces Round 641 F2. Slime and Sequences (生成函数)(拉格朗日反演)
传送门注意到好的序列到一个排列是一个双射,在序列上的数 apia_{p_i}api 等于 iii 前方的小于号个数加一,其中小于号指的是相邻两个数的大小关系,下面我们对这个排列进行计数fi,jf_{i,j}fi,j 表示长度为 iii 至少 jjj 个 <<< 的个数,恰为斯特林数 Si,i−jS_{i,i-j}Si,i−j,每一组内钦定递增gi,jg_{i,j}gi,j 表示正好 jjj 个 <<< 的个数(可以 O(n2)O(n^2)O(n2)原创 2020-05-13 17:51:30 · 617 阅读 · 0 评论 -
【LOJ6609】无意识的石子堆(生成函数)(组合数学)
传送门题目比较神,但如果听了大神 ldxldxldx 讲了就可以很快做出来考虑列作为点,行作为一条边,那么最后的图就是若干个环及若干条链的图,点带标号边带标号考虑枚举链的个数 iii,那么点数 i+ni+ni+n,方案数 (mi+n)\binom{m}{i+n}(i+nm),给每个图分配边,方案数为n!∏(szi!)∏(szi−1)!\frac{n!}{\prod (sz_i!)\pr...原创 2020-04-21 23:42:21 · 311 阅读 · 0 评论 -
【P5850】calc 加强版(生成函数)(多项式)
传送门题意:有 (kn)\binom{k}{n}(nk) 种情况,每种情况是选出来的数之积,求 n∈[1,m]n\in[1,m]n∈[1,m] 的每种情况的值那么就是求 ∏(1+ix)\prod(1+ix)∏(1+ix) 的 [1,n][1,n][1,n] 项系数,那么用 ln,exp\ln,\expln,exp 来转换,即exp(∑ln(1+ix))\exp(\sum \l...原创 2020-04-10 17:41:04 · 181 阅读 · 0 评论 -
【省选模拟】20/04/09 黑暗(生成函数)(多项式)
第一次考场自己搞生成函数,算是进步吧好像可以用斯特林推,不过有一种无脑的方法题意:nnn 个点的所有无向图,每个图的贡献是连通块大小的 mmm 次方,多次询问 n≤3e4,m≤15n\le 3e4,m\le 15n≤3e4,m≤15先预处理 F(x)F(x)F(x) 表示无向联通图的 EGFEGFEGF设 Gm(x)G_m(x)Gm(x) 为答案的 EGFEGFEGF,那么有G...原创 2020-04-09 21:59:19 · 178 阅读 · 0 评论 -
【省选模拟】20/04/07 考试 (组合意义)(生成函数)(多项式)
有 nnn 个独立的变量(实数)xi∈[0,ai]x_i\in[0,a_i]xi∈[0,ai],求 (∑xi)m(\sum x_i)^m(∑xi)m 的期望直接考虑组合意义:就是 nnn 个里面任选 mmm 个乘起来,先不考虑顺序,那么我们可以枚举每个 xix_ixi 被选的次数,基于此构造 EGFEGFEGFFi(x)=∑j≥0∫0aitjdtj!xt=∑j≥0aij+1(j...原创 2020-04-07 18:48:17 · 281 阅读 · 0 评论 -
【省选模拟】20/04/07 亲 (推式子)(生成函数)(多项式)(拉格朗日插值)
题意:求 ∑i=1n(ni)Qi(∑j=1ijk)\sum_{i=1}^n\binom{n}{i}Q^{i}(\sum_{j=1}^ij^k)∑i=1n(in)Qi(∑j=1ijk),n≤1e9,k≤3e3,Q≤1e9n\le 1e9,k\le3e3,Q\le 1e9n≤1e9,k≤3e3,Q≤1e9发现 3 个大神都有不同的神仙方法,只有我什么都不会无敌的 ldxldxldx...原创 2020-04-07 17:59:58 · 296 阅读 · 0 评论 -
【省选模拟】Fac (生成函数)(组合意义)(拉格朗日反演)(倍增)(多项式全家桶)
传送门没有题解是真的秀,连蒙带猜搞了一天结果今天早上才写完,不过还好有 3 个神仙学长助力不知道题解是怎么想到的,所以只好直接说结论了经观察发现可以先求出 (iki−1)1i\binom{ik}{i-1}\frac{1}{i}(i−1ik)i1,这个在 k=2k=2k=2 的时候是卡特兰数也就是二叉树的个数考虑将其扩展为 kkk 叉树,即证 f(x)=xf(x)k+1f(x)=...原创 2020-03-29 09:44:37 · 384 阅读 · 3 评论 -
【LOJ6569】仙人掌计数(生成函数)(多项式全家桶)(牛顿迭代)
传送门题意:nnn 个点带标号的仙人掌个数求一个有根的个数,令其 EGFEGFEGF 为 f(x)f(x)f(x),那么一个根可以在多个环,或是只连出去一条边,对于环上的点,是以这个点为根的有序拼接(这样就不用管环上的顺序了),但是直接无序拼接的话正反会被算一遍,然后我们将每个环的贡献 exp\expexp 起来可以得到f(x)=xexp(f(x)+∑i≥2fi(x)2)=xexp(...原创 2020-03-17 23:25:44 · 503 阅读 · 0 评论 -
【集训队作业2018】普通的计数题(牛顿迭代)(微分方程)(多项式全家桶)
传送门首先完成模型转换:一个 1 操作的点向消去的连边,那么有可能连的全部是 0 边,或是有一些 1 边和 0 边,发现这个就是一棵树,结点满足大的在上,如果一个点的儿子全是叶子,那么儿子个数 ∈B\in B∈B,否则叶子儿子个数 ∈A\in A∈A我们直接暴力上 EGFEGFEGF,树的 EGFEGFEGF 记为 F(x)F(x)F(x),集合的 EGFEGFEGF 记为 A,BA,BA,...原创 2020-03-13 19:29:02 · 356 阅读 · 0 评论 -
【LOJ #6363】「地底蔷薇」(拉格朗日反演)(多项式全家桶)
传送门神题 orzorzorz首先可以求出 H(x)H(x)H(x) 表示无向联通图个数,并且我们为每个图定一个根考虑断掉根所在的若干个点双的所有边,我们搞出一个连通块的 EGFEGFEGF 再 exp\text{exp}exp 就可以得到若干个点双,考虑断掉点双内所有边后剩下的联通块个数就是点双大小(除根),于是我们定义 bib_ibi 为大小为 i+1i+1i+1 的点双的方案数,...原创 2020-03-13 15:15:49 · 329 阅读 · 0 评论 -
「WC2019」数树(生成函数)(树形DP)(容斥)(多项式exp)
LOJLOJLOJ 传送门转换一下题意得到:对于两棵树 T1,T2T1,T2T1,T2,边集是 E1,E2E1,E2E1,E2,那么贡献就是 yn−∣E1∩E2∣y^{n-|E1\cap E2|}yn−∣E1∩E2∣第一问:直接求出并即可第二问:T1T1T1 确定,不妨来枚举 T2T2T2令 F(S)=∑T2[T1∩T2=S]F(S)=\sum_{T2} [T1\cap T2=...原创 2020-03-08 16:51:28 · 323 阅读 · 1 评论 -
「九省联考 2018」秘密袭击 (树形DP)(生成函数)(数数)(拉格朗日插值)(线段树合并)
LOJLOJLOJ 传送门题解:考虑每个第 kkk 大贡献多少个集合∑ii∗∑S[kth(S)=i]=∑i∑S[kth(S)≥i]\sum_{i}i*\sum_S[kth(S)=i]=\sum_i\sum_S[kth(S)\ge i]i∑i∗S∑[kth(S)=i]=i∑S∑[kth(S)≥i]那么我们可以枚举每一个 iii,然后算出第 kkk 大 ≥i\ge i≥i 的个数这...原创 2020-02-07 00:11:41 · 252 阅读 · 0 评论 -
「ZJOI2019」开关 (生成函数)(概率)
传送门一道毒瘤的生成函数推导题一开始发现概率 dpdpdp 加一个高斯消元可以过 50pts50pts50pts,然后一直在想 dpdpdp……题解:我们令成功了但不结束的概率指数生成函数为 F(x)F(x)F(x),直接上单位根反演F(x)=∏i=1n∑j=0∞1+(−1)si+j2∗(pisum)j∗xjj!F(x)=\prod_{i=1}^n\sum_{j=0}^{\infty}...原创 2020-02-05 23:24:32 · 306 阅读 · 0 评论 -
「2017 山东一轮集训 Day7」逆序对(生成函数)(容斥)(DP)
传送门题意:长度为 nnn,有 kkk 个逆序对的排列个数?n,k≤1e5n,k\le 1e5n,k≤1e5考虑新填一个数 iii 进去,可能产生的贡献为 [0,i−1][0,i-1][0,i−1],于是问题等价于:∑i=1nai=k,ai∈[0,i−1]\sum_{i=1}^na_i=k,a_i\in[0,i-1]∑i=1nai=k,ai∈[0,i−1] 的方案数其实可以大力生成...原创 2020-01-29 22:45:16 · 485 阅读 · 0 评论 -
集训队作业2018: 青春猪头少年不会梦到兔女郎学姐(多限制容斥)(生成函数)(组合数学)
题意给定 nnn 种颜色的球,第 iii 种颜色的球数量为 aia_iai 个,一种排列的贡献可以如下计算:先把这个序列首尾相连,然后把所有相邻且颜色相同的段拿出来,贡献为他们的长度之积,求所有排列的贡献和,原排列不同,首尾相连后相同的排列不算同一种。模 998244353998244353998244353。先考虑一个序列怎么做我们对每一个 iii 枚举将 aia_iai 分成 bi...原创 2020-01-19 14:27:18 · 465 阅读 · 0 评论 -
「THUPC2018」好图计数 / Count (生成函数)(组合数学)
传送门首先有 “不连通图的补图一定联通”所以不连通的好图的补图一定是联通好图而若一个图是联通图且补图为联通图,那么根据定义这个图不是好图于是发现联通好图的个数 = 不连通好图个数设不连通好图或者是联通好图的个数为 gig_igi,好图个数为 fif_ifi,那么有 fi=2∗gif_i=2*g_ifi=2∗gi考虑 fif_ifi 的生成函数 F(x)F(x)F(x)一个...原创 2020-01-19 09:20:02 · 439 阅读 · 0 评论 -
「JSOI2019」神经网络 (容斥)(组合数学)(生成函数)(树形DP)
传送门题意:给 mmm 棵树,树之间是完全图,问哈密顿回路的数量我们考虑到最后的哈密顿回路一定是有一段一段的树链串起来得到的相当于每一棵树拆分成若干条树链,大小不限个数不限,所有的拼接起来,要求相邻的不来自同一颗树我们可以树形 dpdpdp 求出一棵树分成 jjj 条链的方案数,这里带方向接着,我们先不考虑环,只考虑序列,问题转换为有 mmm 种颜色的球,每种求有若干个,求最后拼接起来...原创 2019-12-12 00:09:47 · 328 阅读 · 0 评论 -
【UNR #2】黎明前的巧克力 (组合数学)(生成函数)(FWT)
传送门题意:求出两个集合使他们异或值相同,问方案数考虑统计那些异或起来为 0 的集合,这样的集合的任何一个划分都是合法的一个大小为 ∣S∣|S|∣S∣ 的集合的贡献是 2∣S∣2^{|S|}2∣S∣我们考虑上生成函数然后 FWTFWTFWT得到 ∏(2∗xai+1)\prod(2*x^{a_i}+1)∏(2∗xai+1) 过后 ifwtifwtifwt 回去,第 000 项的值就是答案...原创 2019-12-06 18:46:53 · 230 阅读 · 0 评论 -
HDU6426 Alkane (生成函数)(牛顿迭代)(Burnside)(容斥)
传送门第一问:求每个点度数不超过 4 的无根树数量第二问:求每个点儿子数不超过 3 的有根树数量首先第二个问相对简单,移步这里 传送门其次写这道题之前应先膜拜 https://blog.csdn.net/zxyoi_dreamer/article/details/97561441假设第一个问求出的东西的生成函数是 A(x)A(x)A(x),我们开始推导我们发现首先可以分为两个大类分别...原创 2019-12-04 20:55:12 · 288 阅读 · 0 评论 -
LOJ6183 看无可看 (分治FFT)(生成函数)(特征方程)
传送门首先题目给出的递推式的特征方程是 λ2−2∗λ−3=0\lambda^2-2*\lambda-3=0λ2−2∗λ−3=0,两个特征根分别是 λ1=3,λ2=−1\lambda_1=3,\lambda_2=-1λ1=3,λ2=−1然后第 n 项可以表式为 C1∗λ1n+C2∗λ2nC_1*\lambda_1^n+C_2*\lambda_2^nC1∗λ1n+C2∗λ2n对上面两...原创 2019-12-04 20:33:16 · 214 阅读 · 0 评论 -
LOJ 6538 烷基计数 (生成函数)(Burnside)(牛顿迭代)
传送门题意:求儿子数不超过 3 的有根树个数axa_xax 表示有 x 个碳的方案树直接上生成函数,A(x)=∑aixiA(x)=\sum a_ix^iA(x)=∑aixi我们可以先强行钦定有 3 个儿子如果只有一个或两个的话相当于那个儿子的 sizesizesize 为 0题目要求不同构,考虑用 BurnsideBurnsideBurnside 来计数考虑同构的总方案数为每种置...原创 2019-12-04 15:52:11 · 632 阅读 · 0 评论 -
UOJ450 [集训队作业2018] 复读机 [生成函数+单位根反演]
传送门可以先构造生成函数,然后单位根反演当 d = 2 时 , 需要自己与自己卷 k 次,然后求第 n 项泰勒展开一下,第 n 项就是当 d = 3时,直接暴力枚举 w(3, 0), w(3, 1), w(3, 2) 出现了多少次#include<bits/stdc++.h>#define N 500050using namespace st...原创 2019-08-07 16:33:52 · 184 阅读 · 0 评论 -
P4389 付公主的背包 [生成函数+多项式Exp]
传送门直接弄出每一种物品的生成函数几个F乘起来不好做,我们考虑先求 ln,然后加起来,再 exp 回去设x ^ v 乘进去相当于平移一下然后可以枚举每一个 v,然后调和级数处理出 g(x),然后求 exp 就可以了#include<bits/stdc++.h>#define N 1000050using namespace std;t...原创 2019-08-07 16:07:04 · 173 阅读 · 0 评论 -
CF1096G Lucky Tickets [生成函数+NTT]
传送门我们如果能求出 n/2 个数能组合出的某个数的方案数 v, 那么v^2 就是这个数的贡献发现可以用生成函数, 类似下面这样构造组合成9的方案数就是2, 然后NTT就可以了#include<bits/stdc++.h>#define N 4000050using namespace std;int n, k, up, bit, rev[N];typed...原创 2019-07-11 17:57:20 · 356 阅读 · 1 评论 -
CF632E Thief in a Shop [ 生成函数 + NTT ]
传送门生成函数好巧妙啊, 如果能买到, 系数为1, 否则为0所以最开始的生成函数就是, 然后自己跟自己卷k次就可以了NTT 用 998244353 和 1004535809 做两次, 就可以避免冲突#include<bits/stdc++.h>#define N 1050000using namespace std;typedef long long ll;...原创 2019-07-09 23:05:32 · 255 阅读 · 0 评论 -
P4451 [国家集训队]整数的lqp拆分 [生成函数]
刚刚学了生成函数, 真觉得是个巧妙的东西我们不妨设答案为, 它的生成函数是, 斐波那契的生成函数是考虑每个 Fi 对当前 gn 的贡献, 显然有也就是 又因为 , 所以 因式分解一下 待定系数解得如何将G展开成多项式 ? 我开始也不理解, 我们先倒着来令则相减就有这里相当于于是...原创 2019-05-23 22:32:36 · 237 阅读 · 0 评论