专栏文章

XYD 7.26 记录

个人记录参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@miopuedx
此快照首次捕获于
2025/12/02 23:11
3 个月前
此快照最后确认于
2025/12/02 23:11
3 个月前
查看原文
上午讲多项式和生成函数,之前只写过 FFT 和 NTT 的板子,其他都没做过,上午听懂了挺多的,不过到后面就掉线了,然后我就自己网上学了一下。感觉生成函数终于理解了,以前自己学的时候看到一个数列的生成函数 i=0naixi\sum\limits_{i=0}^na_ix^i 就一直不明白 xix^i 到底干嘛的,为啥非要写成一个多项式的形式,今天终于是知道了。就是他是有一些组合意义的,比如说你要两组数加起来刚好是一个数 ss ,那你把他的方案数列出来就是 i=0sfifsi\sum\limits_{i=0}^sf_if_{s-i} 这里 fif_i 就是取 ii 个有多少种取法,然后你考虑对于两个多项式 F(x)=i=0naixi,G(x)=i=0mbixiF(x)=\sum\limits_{i=0}^na_ix^i,G(x)=\sum\limits_{i=0}^mb_ix^i,如果把他们两个乘起来会发生什么。
H(x)=F(x)G(x)=i=0n+m(j=0iajbij)xiH(x)=F(x)G(x)=\sum\limits_{i=0}^{n+m}(\sum\limits_{j=0}^ia_jb_{i-j})x^i
然后你会惊奇的发现 H(x)H(x) 的第 ss 项的系数就是 i=0saibsi\sum\limits_{i=0}^sa_ib_{s-i},刚好就是和上面的方案数的式子是同构的,非常巧妙,所以要把这两个结合起来,来表达同样的意思。
至于这个多项式就是纯推式子。
昨天紧急补习了 FFT,把第一题 分治 FFT 过了,中午听完课回来有些了几题生成函数的题目,就是因为只要推式子,推完了就是比较简单的快速幂什么的随便写一下就可以了,感觉就是小学奥数题,给你一个无穷大的数列让你求和,然后你要乘个什么东西上下消掉,然后就能推出来了,就和生成函数求他的封闭形式差不多。
拿 P4451 讲一下基本思路。斐波那契数列生成函数 F(x)=x1xx2F(x)=\frac{x}{1-x-x^2},然后设总和恰好为 n 的答案记为 sns_n,那么 sn=i=0n1si×fibnis_n=\sum\limits_{i=0}^{n-1}s_i\times fib_{n-i},他的生成函数 G(x)=i=0sixiG(x)=\sum\limits_{i=0}^{\infin}s_ix^i,把两个乘起来就是
G(x)F(x)=i0(j=0ifibjsij)xisi+1=j=0ifibjsijG(x)F(x)=s0+i>0sixi=1+i>0sixi=1+G(x)G(x)F(x)=\sum\limits_{i\geq0}(\sum\limits_{j=0}^ifib_js_{i-j})x^i\\ \because s_{i+1}=\sum\limits_{j=0}^ifib_js_{i-j}\\ \therefore G(x)F(x)=s_0+\sum\limits_{i>0}s_ix^i\\ =1+\sum\limits_{i>0}s_ix^i\\ =1+G(x)
反正非常的聪明,然后两个多项式关系就有了并且 F(x)F(x) 已知,所以直接求 G(x)G(x) 取他 xnx^n 的系数就可以了。
多项式就不说了,就是推式子,可能要代码技巧的我还没做
今天我终于理解卷积是啥以及学会了初级的生成函数。

评论

0 条评论,欢迎与作者交流。

正在加载评论...