【LUOGU???】WD与积木 NTT】的更多相关文章

题目大意 把 \(n\) 个有标号物品分到一些有标号的箱子中且不允许为空,问期望箱子的数量. 多组询问. \(n\leq 100000\) 题解 记 \(f_i\) 为 \(i\) 个有标号物品分到一些有标号的箱子中且不允许为空的箱子的数量之和. 记 \(g_i\) 为 \(i\) 个有标号物品分到一些有标号的箱子中且不允许为空的方案数. 答案为 \(\frac{f_n}{g_n}\). 转移就是枚举最后一个箱子放了多少物品: \[ \begin{align} g_i&=\sum_{j=1}^i…
P5162 WD与积木 题目背景 WD整日沉浸在积木中,无法自拔-- 题目描述 WD想买\(n\)块积木,商场中每块积木的高度都是\(1\),俯视图为正方形(边长不一定相同).由于一些特殊原因,商家会给每个积木随机一个大小并标号,发给WD. 接下来WD会把相同大小的积木放在一层,并把所有层从大到小堆起来.WD希望知道所有不同的堆法中层数的期望.两种堆法不同当且仅当某个积木在两种堆法中处于不同的层中,由于WD只关心积木的相对大小,因此所有堆法等概率出现,而不是随机的大小等概率(可以看样例理解).输…
传送门 思路 真是非常套路的一道题-- 考虑\(DP\):设\(f_n\)为\(n\)个积木能搭出的方案数,\(g_n\)为所有方案的高度之和. 容易得到转移方程: \[ \begin{align*} &f_n=[n=0]+\sum_{i=1}^n {n \choose i} f_{n-i}\\ &g_n=\sum_{i=1}^n {n \choose i} (f_{n-i}+g_{n-i}) \end{align*} \] 发现\(f_n\)似乎更容易搞出来,我们先搞\(f_n\). 由…
每种堆法(理解成名次序列,举例3,3,8,2和7,7,100,2都对应2,2,1,3这个名次序列)等概率出现:题目中"两种堆法不同当且仅当某个积木在两种堆法中处于不同的层中"可见这是个组合问题,于是设一个名次的生成函数F(x)=sum i=1->inf 1*x^i/(i!) .因为F(x)的常数项为0,有F^inf(x)=0. 名次序列的方案数的生成函数:A(x) = sum i=0->inf F^i(x) = 1/(1-F(x)) 名次序列的各种方案的名次个数之和的生成函…
显然的做法是求出斯特林数,但没有什么优化空间. 考虑一种暴力dp,即设f[i]为i块积木的所有方案层数之和,g[i]为i块积木的方案数.转移时枚举第一层是哪些积木,于是有f[i]=g[i]+ΣC(i,j)·f[i-j],g[i]=ΣC(i,j)·g[i-j] (j=1~i). 考虑优化 .我们发现这个转移非常像卷积.写成卷积形式,有f[i]=g[i]+Σi!·Σf[i-j]/j!/(i-j)!,g[i]=i!·Σg[i-j]/j!/(i-j)!.直接分治NTT即可. 诶是不是强行多了个log?考…
传送门 题解 比赛的时候光顾着算某一个\(n\)的答案是多少忘了考虑不同的\(n\)之间的联系了--而且我也很想知道为什么推着推着会变成一个二项式反演-- 设\(f_n\)为\(n\)块积木时的总的层数,\(g_n\)为\(n\)块积木时总的方案数,则有\[g_n=\sum_{i=1}^n\binom{n}{i}g_{n-i}\] \[f_n=g_n+\sum_{i=1}^n\binom{n}{i}f_{n-i}\] \(g\)的话就是枚举第一层有哪几个,\(f\)的话也是枚举第一层有几个,前面…
设$g_{n}$表示$n$个积木放的方案数,枚举最后一层所放的积木,则有$g_{n}=\sum_{i=1}^{n}c(n,i)g_{n-i}$(因为积木有编号的所以要选出$i$个) 将组合数展开并化简,得到$\frac{g_{n}}{n!}=\sum_{i=1}^{n}\frac{g_{n-i}}{i!(n-i)!}$,明显是一个分治fft的形式,转换为多项式求逆: 令$g_{n}$的指数生成函数为$G(x)=\sum_{i=0}^{\infty}\frac{g_{i}}{i!}x^{i}$,再…
Description 给定 \(2\) 个多项式 \(F(x), G(x)\),请求出 \(F(x) * G(x)\). 系数对 \(p\) 取模,且不保证 \(p\) 可以分解成 \(p = a \cdot 2^k + 1\) 之形式. Solution 设 \(m_1=469762049,m_2=998244353,m_3=1004535809​\),有 \[ \begin{cases} x\equiv c_1\pmod{m_1}\\ x\equiv c_2\pmod{m_2}\\ x\e…
不要以为用上Stirling数就一定离正解更近,FFT都是从DP式本身出发的. 设f[i]为i个积木的所有方案的层数总和,g[i]为i个积木的方案数,则答案为$\frac{f[i]}{g[i]}$ 转移枚举第一层是哪些积木:$$f_n=g_n+\sum_{i=1}^{n}\binom{n}{i}f_{n-i},f_0=0$$$$g_n=\sum_{i=1}^{n}\binom{n}{i}g_{n-i},g_0=1$$ 转化成卷积形式:$$\frac{f_n}{n!}=\frac{g_n}{n!}…
题目 场面过度玄学,容易引起不适 我们发现我们要求的这个期望由分母和分子两部分构成 易发现 \[Ans=\frac{\sum_{i=1}^nS_2(n,i)\times i\times i!}{\sum_{i=1}^nS_2(n,i)\times i!}\] 结合\(NTT\)求斯特林数卷积我们就能过掉\(subtask2\) 考虑正解,我们显然不能再用斯特林数搞了 于是考虑一下\(dp\) 设\(f_n\)表示分母,即\(f_n=\sum_{i=1}^nS_2(n,i)\times i!\)…