給出最高15*15的0 1矩陣,每次可以翻轉一個點,其相鄰的4個點都被翻轉,問最少翻轉幾次可以全部變為0
題中要求的字典序根本不用考慮。。。
枚舉第一行的翻轉所有翻轉情況然後逐行向下更新即可,因為第一行確定後,後面的都有唯一解
#include "stdio.h" #include "string.h" int n,m; int vis[21][21],b[21][21],a[21][21],pri[21][21]; void on(int x,int y) { b[x][y]^=1; if (x-1>=0) b[x-1][y]^=1; if (y-1>=0) b[x][y-1]^=1; b[x+1][y]^=1; b[x][y+1]^=1; } int main() { int ok,ans,sum,cnt,i,j,w,key,flag; while (scanf("%d%d",&n,&m)!=EOF) { for (i=0;i=ans) break; for (j=0;j =ans) break; } } if (sum>=ans || i!=n) continue; flag=1; for (j=0;j