1. 题目
题目是少见的良心中文题面,就不写大意了。
2. 题解
母函数模板题耶 QvQ
设 ai表示价值为 i的单词的个数。
构造母函数:
G(x)=a1x+a2x2+a3x3+…
对于价值为 i个字符,设它有 p个,则对于它来说母函数为:
Gi(x)=1+xi+x2i+…+xpi
对于用字符 i和字符 j能组合出来的情况的母函数我们可以想一下:
Gi(x)中的 a[i]pxp和 Gj(x)中的 a[j]qxq可以合并得到新的母函数的 (a[i]pa[j]q)xp+q(其中 a[i]j表示 Gi(x)的 j次项的系数)
说的比较拗口。。。
打个比方吧,比如你有 2种方法得到价值 5,有 3种方法得到价值 7,那么你得到价值 (5+7=12)的方法数应当加上 (2×3=6)
不难发现就是:
G(x)=Gi(x)Gj(x)
即 i,j两种价值的字符组合出来的母函数 G(x)是 Gi(x)和 Gj(x)的卷积。
那么最终情况的母函数:
G(x)=G1(x)G2(x)G3(x)…G26(x)
求卷积可以用 FFT 把 N2优化到 Nlog2N,但是这题多项式长度只有 51,你 FFT 快不到哪里去,说不定常数大还慢些。。。
代码:
0 条评论