hdu5601-N*M bulbs(黑白棋盘染色)

时间:2022-10-04 05:08:57

一个矩形,一个人从左上角走到右下角,每走过一个位置把0变成1,1变成0.

求有没有可能他离开之后所有的数都是0

假设这个矩形是一个棋盘,黑白相间。

hdu5601-N*M bulbs(黑白棋盘染色)

这样会发现从一个颜色走到相同颜色可以对棋盘不产生任何影响,也可改变偶数个格子。从一个颜色走到另一个颜色必须转化奇数次。

也就是从左上角走到右下角,如果两个格子颜色相同,那么就可以改变偶数个,否则改变奇数个。

看(n+m-1)和1的个数是否同奇偶即可。

#include <iostream>

using namespace std;

int main()
{
std::ios::sync_with_stdio(false);
int m, n, t;
cin >> t;
while (t--) {
cin >> n >> m;
int tot = 0;
int tmp;
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) {
cin >> tmp;
tot += tmp;
}
}
if ((m + n - 1 + tot) & 1) cout << "NO" << endl;
else cout << "YES" << endl;
}
return 0;
}