2023.1.21 闲话
首先祝大家新年快乐吧 .
现在发闲话也是挺极限的,反正 1.21 有闲话啦!
dottle 头像原来是 index 吗……我怎么以前一直没看出来(
推一下喝茶P的新歌 除了我大家都是笨蛋 .
看 joke3579 的转置原理发现又有「求若干次数和一定的有理分式之和」/fn
joke3579 的问题:
数列多幂次求和
给数列 \(\{a_n\}\),对于 \(k\in[0,n)\) 求 \(\displaystyle\sum_{i=1}^na_i^k\) .
答案关于 \(k\) 的 OGF 就是
这是求若干次数和一定的有理分式之和,可以通过分治 NTT 在 \(\Theta(\mathsf M(n)\log n)\) 时间求解 .
或者考虑直接计算分子分母的式子,原式显然等价于
都可以分治 NTT,这样也是 \(\Theta(\mathsf M(n)\log n)\) .
最后还得用一次求逆算出 \(F(z)\bmod x^n\) 才能求答案 .
然而上面的东西都不是重点 .
好像分治 NTT 挺难分析复杂度,下面试分析一下:
首先考虑最平凡的问题:给一组多项式 \(\{f_m\}\) 满足 \(\displaystyle\sum_{i=1}^m\deg f_i=O(n)\),求 \(\displaystyle\prod_{i=1}^mf_i\)(那个分式求和的是这个的直接推论).
首先考虑启发式合并,下面是 myee 给出的做法:
考虑最后一次合并
若 \(a<\dfrac n3\),那么分治下去 \(n-a\) 的部分肯定是只有一个多项式,于是可以把原递归式改写为:
这个式子渐进意义下和原式相同 .
想一棵递归树可以得到有 \(\Theta(\log n)\) 层,每层是 \(\mathsf M(n)\),于是复杂度就是 \(\Theta(\mathsf M(n)\log n)\) .
也不一定要这样合,在中点分治的复杂度同样是正确的 .
我口胡一波先,考虑递归树,考虑一次乘法哪边度数大算哪边贡献,于是总共乘法只有 \(\Theta(\log n)\) 次的贡献,于是复杂度就是 \(\Theta(\mathsf M(n)\log n)\) .
也不知道对不对,就这样吧 .
以下是博客签名,正文无关
本文来自博客园,作者:Jijidawang,转载请注明原文链接:https://www.cnblogs.com/CDOI-24374/p/17064114.html
版权声明:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0)进行许可。看完如果觉得有用请点个赞吧 QwQ