P11746 Dynamic Color Problem
Subtask 1
可以直接
Subtask 3~4
留给一些奇怪的做法。但其实没有人刻意去拿这档分。
Subtask 5
可以发现你获得的分数和 AI 获得的分数相加等于
一整行或一整列颜色不完全相同的情况难以处理,所以考虑处理一整行或一整列颜色完全相同的情况。即现在需要解决这个问题:一整行或一整列颜色完全相同的数量是偶数的方案数。再反过来,先考虑为奇数的方案,再用总方案去减。
根据惯用做法,直接容斥/二项式反演。先考虑容斥系数的求解:对于答案至少有
- 当答案至少有
0 个产生贡献时:容斥系数为0 。 - 当答案至少有
1 个产生贡献时:之前产生\binom{1}{0}\times 0=0 的贡献,所以此时容斥系数为1 。 - 当答案至少有
2 个产生贡献时:之前产生\binom{2}{0}\times 0+\binom{2}{1}\times 1=2 的贡献,所以此时容斥系数为-2 。 - 当答案至少有
3 个产生贡献时:之前产生\binom{3}{0}\times 0+\binom{3}{1}\times 1+\binom{3}{2}\times -2=-3 的贡献,所以此时容斥系数为4 。 - 当答案至少有
4 个产生贡献时:之前产生\binom{4}{0}\times 0+\binom{4}{1}\times 1+\binom{4}{2}\times -2+\binom{4}{3}\times 4=8 的贡献,所以此时容斥系数为-8 。
因此可以得到答案至少为
接下来计算答案:
- 只有行产生贡献:
\sum_{i=1}^n (-2)^{i-1}\binom{n}{i}2^i2^{(n-i)m} 。具体含义为从n 行中选择i 列颜色相同,他们颜色方案数为2^i 。其余位置方案数为2^{(n-i)m} 。 - 只有列产生贡献:
\sum_{i=1}^m (-2)^{i-1}\binom{m}{i}2^i2^{(m-i)n} 。同理可得。 - 都产生贡献:枚举行列分别产生
i 和j 的贡献:\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)} 。如果列的颜色相同,行的颜色也相同,那么总的颜色只有全黑和全白两种。
复杂度
Subtask 6
考虑
优化上面部分的第三个式子:
因此复杂度可以做到