P11746 Dynamic Color Problem

· · 题解

Subtask 1

可以直接 2^{nm} 暴力求解,实现的好的话其实可以拿 30 分。

Subtask 3~4

留给一些奇怪的做法。但其实没有人刻意去拿这档分。

Subtask 5

可以发现你获得的分数和 AI 获得的分数相加等于 n+m。则 n+m 为偶数时,一定不存在合法解。又因为当 n+m 为奇数时,若你获得的分数是偶数,那么 AI 一定是奇数,反之亦然。故两者一一对应,只需要求出其中一种方案数就是答案。

一整行或一整列颜色不完全相同的情况难以处理,所以考虑处理一整行或一整列颜色完全相同的情况。即现在需要解决这个问题:一整行或一整列颜色完全相同的数量是偶数的方案数。再反过来,先考虑为奇数的方案,再用总方案去减。

根据惯用做法,直接容斥/二项式反演。先考虑容斥系数的求解:对于答案至少有 i 个产生贡献的情况,恰好是 i 是最后一次计算。

因此可以得到答案至少为 x 时,容斥系数为 (-2)^{x-1}

接下来计算答案:

复杂度 \mathcal O(nm)。期望得分 56 分。

Subtask 6

考虑 100 分的算法:

优化上面部分的第三个式子:

\begin{align*} f(n,m) &= \sum_{i=1}^n\sum_{j=1}^m (-2)^{i+j - 1}\binom{n}{i}\binom{m}{j}2\times 2^{(m - j)(n - i)} \\ &= \sum_{i=1}^n2 (-2)^{i - 1}\binom{n}{i}\sum_{j=1}^m (-2)^{j}\binom{m}{j}2^{(m - j)(n - i)} \\ &= \sum_{i=1}^n2 (-2)^{i - 1}\binom{n}{i}\sum_{j=1}^m \binom{m}{j}(-2)^{j}(2^{n - i})^{m - j} \\ &= \sum_{i=1}^n2 (-2)^{i - 1}\binom{n}{i} [(-2 + 2^{n - i})^m - 2^{(n - i)m}] \ \end{align*}

因此复杂度可以做到 O(T(n+m)\log n)。可以预处理二的次幂来减小常数,但是始终需要快速幂。期望得分 100