Comet OJ - Contest #12
这可能是我离小裙子最近的一次 B 整个表格其实是一些联通块,取反操作不能跨连通块。所以直接统计一下每个连通块内数字不对的个数是不是偶数即可 #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #define gt(x,y) ((x)*m+y) using namespace std; const int M = 1100000; int n,m,k,a[M],b[M],d[M],T,r,c,cnt=0,s[M]; char C[M]; bool check(int x,int y) { if(x<0 || y<0 || x>=n || y>=m) return 0; return 1; } void dfs(int x,int y) { if(!check(x,y)) return ; if(d[gt(x,y)]) return ; d[gt(x,y)]=cnt; dfs(x-r,y); dfs(x+r,y); dfs(x,y-c); dfs(x,y+c); } int main() { scanf("%d",&T); for(;T;T--) { scanf("%d%d%d%d",&n,&m,&r,&c); int B=1; cnt=0; for(int i=0;i<n;i++) for