Luogu5289
正常人都会基于背包 dp 的推导,就我只能按 \(\rm GF\) 的方法理解……
正常人都会想把多元 \(\rm GF\) 多元分离,但这个出题人并不!
他居然要进行一个 多 元 一 体 的迷惑操作。(这么有实力的吗)
简单来说,先把学校按城市排序。
两元 \(z,u\) 分别表示阵营、派别。
那么每个城市的 \(\rm GF\) 在 \(k=0\) 时可以表示为
\[z^{\sum s}(\prod u^s+1)+(\prod u^s+1)=(z^{\sum s}+1)(\prod u^s+1)
\]
此时两元独立,这就很 nice。
现在呢?
对于一般的 \(k\),发现两元不独立。
\[z^{\sum s}(\prod u^s+1\text{ 或 } u^s\text{ 或 } 1)+(\prod u^s+1\text{ 或 } u^s\text{ 或 } 1)
\]
这咋整?
考虑把那 \(k\) 个单独提出来,
\[z^{\sum s}(\prod_{i\in S}u^{s_i}+1\text{ 或 } u^{s_i}\text{ 或 } 1)(\prod_{i\notin S}u^{s_i})+(\prod_{i\in S}u^{s_i}+1\text{ 或 } u^{s_i}\text{ 或 } 1)(\prod_{i\notin S}u^{s_i})\\=\left(z^{\sum s}\left(\prod_{i\in S}u^{s_i}+1\text{ 或 } u^{s_i}\text{ 或 } 1\right)+\left(\prod_{i\in S}u^{s_i}+1\text{ 或 } u^{s_i}\text{ 或 } 1\right)\right)\left(\prod_{i\notin S}u^{s_i}\right)
\]
考虑把各个城市左右分别背包合并起来,显然左边这里 \(u\) 的次数不会太高,在右边结果对应区间查询区间和即可得到其对答案的贡献……
注意左边这个柿子要把普通学校单独处理来保证复杂度。
本文来自博客园,作者:myee,转载请注明原文链接:https://www.cnblogs.com/myee/p/Luogu-solution-p5289.html