博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 1753(枚举)
阅读量:4954 次
发布时间:2019-06-12

本文共 1510 字,大约阅读时间需要 5 分钟。

1 #include 
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 using namespace std;10 char a[6][6];11 int flag,mi;12 int dir[6][2]={ 0,0,-1,0,1,0,0,-1,0,1};13 int judge()14 {15 for(int i=0;i<4;i++)16 {17 for(int j=0;j<4;j++)18 {19 if(a[i][j]!=a[0][0])20 return 0;21 }22 }23 return 1;24 }25 void fanpai(int x,int y)26 {27 int p,q;28 if(a[x][y]=='b')29 a[x][y]='w';30 else31 a[x][y]='b';32 if (x-1>=0)33 if (a[x-1][y]=='b')34 a[x-1][y]='w';35 else a[x-1][y]='b';36 if (x+1<4)37 if (a[x+1][y]=='b')38 a[x+1][y]='w';39 else a[x+1][y]='b';40 if (y-1>=0)41 if (a[x][y-1]=='b')42 a[x][y-1]='w';43 else a[x][y-1]='b';44 if (y+1<4)45 if (a[x][y+1]=='b')46 a[x][y+1]='w';47 else a[x][y+1]='b';48 /* 49 for(int i=0;i<5;i++)50 {51 p=x+dir[i][0];52 q=y+dir[i][1];53 if(p>=0&&p<4&&q>=0&&q<4)54 {55 if(a[p][q]=='b')56 a[p][q]=='w';57 else58 a[p][q]=='b';59 }60 }*/61 }62 void dfs(int x,int y,int coun)63 {64 if(judge())65 {66 flag=1;67 mi=min(mi,coun);68 return;69 }70 if(x>=4||y>=4) return;71 int nx,ny;72 nx=(x+1)%4;73 ny=y+(x+1)/4;74 dfs(nx,ny,coun);75 fanpai(x,y);76 dfs(nx,ny,coun+1);77 fanpai(x,y);78 return;79 80 }81 int main(int argc, char *argv[])82 {83 84 for(int i=0;i<4;i++)85 scanf("%s",a[i]);86 flag=0;mi=9999999;87 dfs(0,0,0);88 if(flag)89 printf("%d\n",mi);90 else91 printf("Impossible\n");92 return 0;93 }

 

转载于:https://www.cnblogs.com/huluxin/p/9759701.html

你可能感兴趣的文章
scanf和gets
查看>>
highcharts 图表实例
查看>>
定时器使用
查看>>
LeetCode Median of Two Sorted Arrays
查看>>
【知识强化】第二章 线性表 2.2 线性表的顺序表示
查看>>
19.30内置登录处理
查看>>
00_前情回顾
查看>>
fortran90简明教程
查看>>
flex知识点归纳
查看>>
hdu 5442 Favorite Donut 最大表示法+KMP
查看>>
ubuntu下如何查看用户登录及系统授权相关信息
查看>>
丶制作一个数字猜猜看小游戏
查看>>
秋季学期学习总结
查看>>
SpringBoot 优化内嵌的Tomcat
查看>>
Dagger2 入门解析
查看>>
【LaTeX】E喵的LaTeX新手入门教程(1)准备篇
查看>>
Alpha版(内部测试版)发布
查看>>
Python2和Python3的不同
查看>>
递归实验的三个作业实验(阶乘,杨辉三角,汉诺塔,回文)
查看>>
highcharts曲线图
查看>>