题解 CF1545C AquaMoon and Permutations
考虑如果存在有一个数组的有一列中存在一个只出现了 \(1\) 次的数,那么这个数组肯定要选入。然后与它有相同位的数组肯定不能选入。
如果上述条件不满足,显然是每一列每个剩余的数出现 \(2\) 次(鸽巢原理)。于是根据题意,原始数组和添加的数组都是 Latin square。我们只要任意指定一个数组选入,将答案乘 \(2\) 即可。
依次进行以上操作使所有数组的选入或不选入状态确定。可以使用队列维护,容易发现每个数组进队一次,每次操作的复杂度 \(O(n^2)\)。故总复杂度 \(O(n^3)\)。
这就是 2800 的题吗
赛时代码,写得很丑,仅供参考。

浙公网安备 33010602011771号