[AGC001E] BBQ Hard 题解

发布时间 2023-10-12 15:25:44作者: _hjy

一道十分有趣的题。

一眼推式子,发现自己不会。

看了题解,发现是有趣思维题。但是由于我的朋友学习了有趣的思维题做法,因此我决定学习更有趣的生成函数做法!!!

考虑把原式拆开,

\[\frac{1}{2}\times \left( \sum_{i=1}^{n}\sum_{j=1}^{n} \binom{a_i+a_j+b_i+b_j}{a_i+a_j}- \sum_{i=1}^{n}\binom{2a_i+2b_i}{2a_i} \right) \]

后半部分显然可以快速计算,考虑如何计算前半部分。

\[\sum_{i=1}^{n}\sum_{j=1}^{n} \binom{a_i+a_j+b_i+b_j}{a_i+a_j} \]

\(t_i=a_i+b_i\) ,使用生成函数可得:

\[[x^{a_i+a_j}]\sum_{i=1}^{n}\sum_{j=1}^{n} (1+x)^{t_i+t_j} \]

\(x^{a_i+a_j}\) 除掉,变成

\[[x^0]\sum_{i=1}^{n}\sum_{j=1}^{n} x^{-a_i-a_j}(1+x)^{t_i+t_j} \]

发现此时变为了自己卷自己,变成平方形式:

\[[x^0] \left( \sum_{i=1}^{n} x^{-a_i}(1+x)^{t_i} \right )^2 \]

枚举 \(t_i\) ,设 \(Q_i=\sum_{t_i=i}x^{-a_i}\),变形为:

\[[x^0] \left( \sum_{i=1}^{m} Q_i(1+x)^{i} \right )^2 \]

平方中间的式子可以用秦九韶算法快速计算,卷积直接暴力算。

总时间复杂度 \(O(n+m^2)\),其中 \(m\)\(t_i\) 的值域