給出最高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