织梦可以做论坛网站,做网站需要几万块吗,如果网站没有做icp备案会被处罚,字节跳动员工人数2020https://www.luogu.com.cn/problem/CF1592F2
做完F1#xff0c;然后用1的结论来思考。
场上推了几个性质。首先op4的操作行列必然两两不同#xff0c;所以op4最多 max ( n , m ) \max(n,m) max(n,m) 次。然后手玩发现只有除 ( n , m ) (n,m) (n,m) 的三个格子都为1然后用1的结论来思考。
场上推了几个性质。首先op4的操作行列必然两两不同所以op4最多 max ( n , m ) \max(n,m) max(n,m) 次。然后手玩发现只有除 ( n , m ) (n,m) (n,m) 的三个格子都为1op4才有意义。
然后猜了个网络流。每个点如果满足条件就向行列连边。 但这样显得我非常愚蠢。
因为中间的点完全没用直接行向列连边就变成二分图了… auto calc [] (int x, int y) - int {return a[x][y]^a[x1][y]^a[x][y1]^a[x1][y1]; }; mf_graphintG(N*N); nread(); mread(); for(i1; in; i) {scanf(%s, str1); for(j1; jm; j) if(str[j]B) a[i][j]1; }for(in; i1; --i) for(jm; j1; --j) {v[i][j]calc(i, j); sumv[i][j]; }Snm1; TS1; for(i1; in; i) if(v[i][m]) G.add_edge(S, i, 1); for(i1; im; i) if(v[n][i]) G.add_edge(in, T, 1); for(i1; in; i)for(j1; jm; j) if(v[i][j] v[n][j] v[i][m]) G.add_edge(i, jn, 1); kG.flow(S, T); pv[i][j]; v[i][j]^(k1);
// printf(%d %d\n, sum, k); ansmin(sum, sum-k-pv[i][j]); if(v[i][j] k) ansmin(ans, sum-(k-1)); printf(%d, ans);