loj「LibreOJ NOI Round #2」不等關系


題意

略。

題解

我們暫且先忽略掉所有<
考慮將>看做一個限制“1”,要求的就是111...111
那么,容斥一下,就是:
111...111
= 111...11? - 111...110
= 111...11? - 111...1?0 + 111...100
= ...
= 111...11? - 111...1?0 + 111...?00 - ...
考慮類似111?000這種怎么求?
\(dp_i\)表示考慮前\(i\)>之前的所有符號(包括<),滿足的序列的種類數。


轉移方程:

\[dp_i = [s_i = '>'] \sum_{j < i} [s_j = '>'] {(-1)} ^ {cnt_i - cnt_j - 1} * \binom{i}{i - j} * dp_j \]

其中\(cnt_i\)代表的是第\(i\)位置之前有多少個>,組合數代表取出\(i\)個數的\(i - j\)個放在問號后面的位置上,由於問號前后序列都是單調的,但是對兩個序列交界處沒有要求,所以方案數就是一個組合數。
把式子變形一下,就是

\[\frac{dp_i}{i!} = [s_i = '>'] \sum_{j < i} [s_j = '>'] \frac{dp_j}{j!} * {(-1)} ^ {cnt_i - cnt_j - 1} * \frac{1}{(i - j)!} \]

做分治ntt即可。
代碼he的,不好意思貼了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM