POJ 3279 搜索

2015-07-20 17:10:55 来源: 作者: 浏览: 4

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

-->

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: