题解:P16439 [XJTUPC 2026] 鲜艳 / 方格
::::info[闲话]
感觉这题可能会像 P14752 一样出现不少大炮打蚊子题解,先写一个自认为比较简单的做法。不过证明可能没那么简单。
::::
以下用
结论:题目条件成立当且仅当每一行要么和上一行的颜色完全相同,要么完全相反。证明如下:
考虑反证法。假设存在某个
那么,一定存在绝对值之差为
所以我们可以令
综上,结论成立。 ::::success[AC 代码]
#include <iostream>
using namespace std;
char s[501][501];
int main() {
int T,n,m,i,j,x;
cin>>T;
while(T--) {
cin>>n>>m;
for(i=0;i<n;i++) cin>>s[i];
for(i=1;i<n;i++) {
x=0;
for(j=0;j<m;j++) x+=s[i][j]==s[i-1][j];
if(x>0&&x<m) break;
}
cout<<(i==n?"Yes\n":"No\n");
}
return 0;
}
:::: AC 记录。