Codeforces Round #555 (Div. 3)
G
题意:有一个 (n cdot m) 的 01 矩阵,每次操作是每行或每列 01 翻转,问是否存在一个解使得矩阵中的元素是非降的。 (n,m le 200)
key:结论
思路是 tutorial 中牛逼的老哥给的
考虑最终解的情况:当 (n ge 2) 时,要么第一行全 0 ,要么最后一行全 1 。所以对于给的矩阵,可以先把它变成这样(也就是说可以枚举对列的情况,只有两个:把第一行变全 0 或者把最后一行变全 1)。此时只需要看看行的情况就行,这个是非常简单的。
仔细思考发现其实这个是充要条件。因为如果列的情况有第三种并且得到一个合法解,那么行的操作也一定会使要么第一行全 0,要么最后一行全 1,实际上造成的影响是一样的。
并且 n=1 是平凡的,并不要特判。