poj 1753状态压缩水题一发

#include<cstdio>
#include<iostream>
using namespace std;

int state=(1<<16)-1;

int dir[4][2]={0,1,1,0,0,-1,-1,0};
char str1[5][5],str[5][5];
int main(){
    for(int i=0;i<4;i++)
        scanf("%s",str1[i]);
    int Min=20;
    int ss;
    int sum;
    bool flag;
    //printf("state=%d\n",state);
    for(int i=0;i<state;i++){
        ss=i;
        flag=true;
        sum=0;
        for(int c=0;c<4;c++)
            for(int d=0;d<4;d++)
                str[c][d]=str1[c][d];
        for(int j=0;j<16;j++){
            if( ss&(1<<j)){
                //puts("Debug");
                sum++;
                int x=j/4,y=j%4;
                if(str[x][y]=='w') str[x][y]='b';
                else str[x][y]='w';
                for(int z=0;z<4;z++){
                    int ex=x+dir[z][0];
                    int ey=y+dir[z][1];
                    if(ex<0 || ex>3 || ey<0 || ey>3) continue;
                    if(str[ex][ey]=='w') str[ex][ey]='b';
                    else str[ex][ey]='w';
                }
            }
        }
        for(int a=0;a<4;a++)
            for(int b=0;b<4;b++){
                if(a==0 && b==0) continue;
                if(str[a][b]!=str[0][0])
                    flag=false;
            }

        if(flag==true && Min>sum){
            //puts("Debug");
            Min=sum ;
        }
    }
    /*for(int a=0;a<4;a++){
        for(int b=0;b<4;b++)
        printf("%c",str[a][b]);
        puts("");
    }*/
    //printf("%d\n",11&(1<<3));
    if(Min==20)
        printf("Impossible\n");
    else
        printf("%d\n",Min);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值