Codeforces Round #555 (Div. 3)

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 是平凡的,并不要特判。

posted @ 2019-07-18 02:12  DQS  阅读(131)  评论(0编辑  收藏  举报