CF623E Transforming Sequence(多项式/倍增fft/动态规划)
生活随笔
收集整理的這篇文章主要介紹了
CF623E Transforming Sequence(多项式/倍增fft/动态规划)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
CF623E Transforming Sequence
經典的倍增NTT題目,但是由于萬惡的模數導致這道題變成了倍增MTT
要求n個數前綴或嚴格遞增的序列個數,一共有k位。
然后我們考慮進行dp,然后我的思路就是fi,jf_{i,j}fi,j?表示前i位在k位中有j位的方案數,然后可以利用組合數進行轉移,但是這個狀態設計不優秀,主要在于它包含了這j位在k位中哪些位置的信息,但是我們完全不需要,因為這j位和其他j位是完全等價的,我們本質上只需要考慮這j位,那么得到另一個狀態設計gi,jg_{i,j}gi,j?表示前i個數一共j位都變成1的方案數,本質上fi,j=(kj)gi,jf_{i,j}=\binom{k}{j}g_{i,j}fi,j?=(jk?)gi,j?
然后這時就有一個非常優秀的性質gn+m,i=∑j=1ign,jgm,i?j2jmg_{n+m,i}=\sum_{j=1}^ig_{n,j}g_{m,i-j}2^{jm}gn+m,i?=∑j=1i?gn,j?gm,i?j?2jm然后我們就可以進行分治MTT了QAQ
這個狀態設計很巧妙,它不是直指答案的,而是將各個等價的獨立子問題分開,這個思路非常巧妙,甚至我們對于這樣的問題,即使無法用多項式優化,也可以將O(n)變為O(logn)
總結
以上是生活随笔為你收集整理的CF623E Transforming Sequence(多项式/倍增fft/动态规划)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 减肥黑咖啡有用吗
- 下一篇: P4239 任意模数多项式乘法逆(多项式