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\) 的次数不会太高,在右边结果对应区间查询区间和即可得到其对答案的贡献……


注意左边这个柿子要把普通学校单独处理来保证复杂度。

posted @ 2022-09-26 20:45  myee  阅读(28)  评论(1编辑  收藏  举报