
生成函数
文章平均质量分 56
_beginend
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【洛谷 P4548 [CTSC2006]歌唱王国】【概率生成函数+KMP】
题意 给一个长度为 nnn 的序列 AAA。有一个空序列 BBB,每次会等概率随机往该序列的末尾加入 111 到 mmm 中的一个整数,若 AAA 成为了 BBB 的子串,则停止。求序列 BBB 的期望长度。 n≤105n\le 10^5n≤105 分析 定义一个离散随机变量 XXX 的概率生成函数为F(z)=∑i≥0P(X=i)ziF(z)=\sum_{i\ge 0}P(X = i)z^iF(z)=i≥0∑P(X=i)zi 其中 P(X=i)P(X=i)P(X=i) 表示 XXX 取值为 iii 的概率原创 2020-07-31 09:33:39 · 383 阅读 · 0 评论 -
【UOJ #269. 【清华集训2016】如何优雅地求和】【生成函数+下降幂多项式】
题意 给出n,m,xn,m,xn,m,x和一个mmm次多项式f(x)f(x)f(x)在x=0,1,⋯ ,mx=0,1,\cdots,mx=0,1,⋯,m处的点值,计算∑k=0nf(k)(nk)xk(1−x)x−k\sum_{k=0}^nf(k)\binom{n}{k}x^k(1-x)^{x-k}k=0∑nf(k)(kn)xk(1−x)x−k n≤109,m≤2∗104n\le 10^9,m\le 2*10^4n≤109,m≤2∗104 分析 若我们已经把f(x)f(x)f(x)转成了下降幂多项式的形式f原创 2020-06-26 21:21:03 · 424 阅读 · 0 评论 -
【洛谷 P6151 [集训队作业2019] 青春猪头少年不会梦到兔女郎学姐】【容斥原理+生成函数】
题意 定义一个序列的权值为:把序列首尾相接成一个环,环上每段数字长度的乘积。有nnn种数字,求所有满足第iii种数字恰好出现aia_iai次的排列的权值之和。 n,∑ai≤2∗105n,\sum a_i\le 2*10^5n,∑ai≤2∗105 分析 先考虑序列上怎么做。设f(a,b)f(a,b)f(a,b)表示把aaa个无标号球分成bbb段的所有方案,每段长度乘积的和。可以理解成在每段中分别选一个数出来的方案,也就是在每两块隔板之间再放一块隔板,因此f(a,b)=(a+b−1b∗2−1)=(a+b−1原创 2020-06-26 10:50:42 · 511 阅读 · 0 评论 -
【洛谷P5825 排列计数】【生成函数+二项式反演/欧拉数】
题意 我们记一个排列PPP的升高为kkk当且仅当存在kkk个位置iii使得Pi<Pi+1P_i < P_{i+1}Pi<Pi+1。 现在给定排列长度nnn,对于所有整数k∈[0,n]k\in [0,n]k∈[0,n],求有多少个排列的升高为kkk。 n≤200000n\le 200000n≤200000 做法一 考虑钦定kkk个位置为<<<,其他位置不管。对...原创 2020-02-10 17:47:57 · 645 阅读 · 1 评论 -
【Codeforces gym102268E Expected Value】【生成函数+Berlekamp-Massey算法】
题意 给一个nnn个点的平面图,问从111随机游走到nnn的期望步数。 n≤3000n\le 3000n≤3000 分析 注意到是平面图,所以边数不超过3n−63n-63n−6。 设pip_ipi表示走了iii步到nnn的概率,则pip_ipi是一个nnn阶线性递推。 先递推出pip_ipi的前2n2n2n项,然后用BM算法求出其递推式,设pip_ipi的生成函数为P(x)P(x)P(x)...原创 2019-11-05 17:47:47 · 405 阅读 · 0 评论 -
【LibreOJ #3045.「ZJOI2019」开关】【生成函数】
题意 有nnn个初始均处于关闭状态的开关,每个开关有一个权值pip_ipi,每一轮会随机选择一个开关并改变其状态,且抽中第iii个开关的概率为pi∑pi\frac{p_i}{\sum{p_i}}∑pipi。问变为目标状态期望需要经过多少轮。 n≤100,∑pi≤5∗104n\le100,\sum{p_i}\le5*10^4n≤100,∑pi≤5∗104 分析 设F(x)F(x)F(x)表...原创 2019-09-06 17:07:52 · 220 阅读 · 0 评论 -
【LibreOJ #556.「Antileaf's Round」咱们去烧菜吧】【生成函数+牛顿迭代】
题意 有mmm种物品,第iii种物品的大小是aia_iai,数量是bib_ibi,其中bi=0b_i=0bi=0表示数量无限。问对于大小在[1,n][1,n][1,n]之间的每个背包,把背包装满的方案。 n,m≤105n,m\le10^5n,m≤105 分析 如果物品无限的话生成函数就是11−xai\frac{1}{1-x^{a_i}}1−xai1 否则为1−xai(bi+1)1−xai...原创 2019-08-13 09:02:23 · 295 阅读 · 0 评论 -
【LibreOJ 6269&6269&6538 烷基计数 加强版 加强版】【生成函数+牛顿迭代】
题意 求nnn个碳原子的烷基的同分异构体数目。 n≤500n\le500n≤500 分析 要求的是每个点的度数不大于444且根节点的度数不大于333的无标号有根树数量。 设fif_ifi表示有iii个碳原子的烷基数目,枚举两个子树的大小算贡献即可。 时间复杂度O(n3)O(n^3)O(n3) 代码 #include<iostream> #include<cstdio> #...原创 2019-08-10 10:40:50 · 732 阅读 · 0 评论 -
LibreOJ #2409.「THUPC 2017」小 L 的计算题 / Sum 生成函数
题意 给出a1,...,ana_1,...,a_na1,...,an,对1≤i≤n1\le i \le n1≤i≤n求fi=∑k=1nakif_i=\sum_{k=1}^na_k^ifi=k=1∑naki n≤200000n\le200000n≤200000 分析 设fif_ifi的OGFOGFOGF为F(x)F(x)F(x),那么有F(x)=∑i=0nfixiF(x)=\sum_{i...原创 2019-07-17 17:05:52 · 186 阅读 · 0 评论 -
LibreOJ #3120.「CTS2019 | CTSC2019」珍珠 生成函数
题意 有nnn个范围在[1,D][1,D][1,D]之间的整数均匀随机变量,问能够选出mmm对变量,满足每个变量至多只出现在一对变量中,且同一对变量的值相同的概率。 n,m≤109,D≤105n,m\le10^9,D\le10^5n,m≤109,D≤105 分析 显然一个数值出现偶数次的EGFEGFEGF为ex+e−x2\frac{e^x+e^{-x}}{2}2ex+e−x,奇数次则为ex−e−...原创 2019-07-17 10:12:44 · 235 阅读 · 0 评论 -
LibreOJ #6363.「地底蔷薇」生成函数+拉格朗日反演
题意 求有多少个nnn个点带标号简单无向连通图满足所有极大点双连通分量的大小都在给定的几何SSS中。 n≤105,∑x∈Sx≤105n\le10^5,\sum_{x\in S}x\le10^5n≤105,∑x∈Sx≤105 分析 神仙zjt出的神仙题。。。 设hkh_khk表示nnn个点带标号有根无向连通图数量,H(x)H(x)H(x)表示hkh_khk的EGFEGFEGF,先把H(x)H(...原创 2019-07-16 11:58:07 · 401 阅读 · 0 评论 -
玲珑OJ 1035 D-J 生成函数
题意 问所有nnn个点的带标号无根森林的树个数的kkk次方和,对998244353998244353998244353取模。 n≤20000,k≤10n\le20000,k\le10n≤20000,k≤10 分析 待补 代码 #include<iostream> #include<cstdio> #include<cstdlib> #include<cs...原创 2019-06-22 22:25:39 · 235 阅读 · 0 评论 -
LibreOJ #6268. 分拆数 生成函数+多项式exp
题意 求1到n的分拆数。 n=105n=10^5n=105 分析 设分拆数的生成函数为F(x)=∑i=1nf(i)xiF(x)=\sum_{i=1}^nf(i)x^iF(x)=i=1∑nf(i)xi 显然有 F(x)=∏k=1n11−xk F(x)=\prod_{k=1}^n\frac{1}{1-x^k} F(x)=k=1∏n1−xk1 两边取对数得 lnF(x)=∑i=1nln11−x...原创 2019-02-10 17:13:59 · 613 阅读 · 0 评论 -
Codeforces 438E The Child and Binary Tree 生成函数+牛顿迭代
题意 考虑一个含有n个互异正整数的序列c[1],c[2],…,c[n]。如果一棵带点权的有根二叉树满足其所有顶点的权值都在集合{c[1],c[2],…,c[n]}中,我们的小朋友就会将其称作神犇的。并且他认为,一棵带点权的树的权值,是其所有顶点权值的总和。 给出一个整数m,你能对于任意的s(1&lt;=s&lt;=m)计算出权值为s的神犇二叉树的个数吗?请参照样例以更好的理解什么样的两棵二叉树会被...原创 2019-02-09 18:09:03 · 298 阅读 · 0 评论 -
牛客网Wannafly挑战赛24 D-无限手套 生成函数
题意 有n种物品,每种物品有两个参数ai,biai,bia_i,b_i。现在可以从每种物品中选出若干个,设第i种物品选了xixix_i个,则贡献∏i=1n(aix2+bix+1)∏i=1n(aix2+bix+1)\prod_{i=1}^n(a_ix^2+b_ix+1) 有q次询问,每次询问给出一个m,求所有选的物品总数为m的选择方案的贡献和,答案模998244353。 n,q≤1000,m≤...原创 2018-09-15 17:31:51 · 985 阅读 · 7 评论 -
Codeforces 891E Lust 生成函数
题意 现在给你一有n个整数的序列a[],有一个初始为0的值res,重复下面的过程k次: “随机选择一个[1,n]之间的下标x,res加上所有满足i≠x的a[i]的乘积,然后将a[x]减去1” 问最后res的期望值,对10^9+7取模 n<=5000 k<=10^9 分析 我们把对a[x]的一次操作的贡献看成是∏a[i]−∏a′[i]∏a[i]−∏a′[i]\prod ...原创 2018-02-27 11:53:43 · 488 阅读 · 0 评论 -
bzoj 2287: 【POJ Challenge】消失之物 生成函数+背包
题意ftiasch 有 N 个物品, 体积分别是 W1, W2, …, WN。 由于她的疏忽, 第 i 个物品丢失了。 “要使用剩下的 N - 1 物品装满容积为 x 的背包,有几种方法呢?” – 这是经典的问题了。她把答案记为 Count(i, x) ,想要得到所有1 <= i <= N, 1 <= x <= M的 Count(i, x) 表格。 n<=2000,m<=2000分析一开始想的是求原创 2017-08-22 21:30:11 · 555 阅读 · 0 评论