有关Polya定理的牛顿迭代:LOJ6538 烷基计数 加强版 加强版

似乎论文哥觉得这没有必要专门写个题解来提示?那我来吧(

在一类用到 Polya 计数定理的生成函数求解时,我们会遇到一些带入了 A ( z k ) A(z^k) 这样的式子,就比如这题可以列出这个方程:

A ( z ) = 1 + z A ( z ) 3 + 3 A ( z 2 ) A ( z ) + 2 A ( z 3 ) 6 A(z)=1+z\frac{A(z)^3+3A(z^2)A(z)+2A(z^3)}6

当然分治 NTT 肯定是可以做的,那么可不可以牛顿迭代呢?

当然是可以的,说起来其实也很简单,当我们要从 ( m o d z n ) \pmod {z^n} 的解扩展到 ( m o d z 2 n ) \pmod {z^{2n}} 的时候,在这个方程里 z A ( z 2 ) zA(z^2) 等等的系数其实已经都求出来了,所以把它当成一个常量就行了……总之写成 B = A ( z 2 ) , C = A ( z 3 ) B=A(z^2),C=A(z^3) ,这样是不是顺眼多了:

A ( z ) = 1 + z A 3 + 3 B A + 2 C 6 A(z)=1+z\frac{A^3+3BA+2C}6

正常的牛顿迭代就可以了。代码

猜你喜欢

转载自blog.csdn.net/EI_Captain/article/details/88983532