poj1753Flip Game(dfs)
Flip Game? 思想很不成熟,
?
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int map[4][4];
int ans=100;
?
int f()
{
??? for(int i=0;i<4;i++)
??? {
??????? for(int j=0;j<4;j++)
??????????? if(map[i][j]!=map[0][0])
????????????? return 0;
?
??? }
???? return 1;
}
?
void fan1(int x,int y)
{
??? if(x>=0&&x<4&&y>=0&&y<4)
??????? map[x][y]=!map[x][y];
}
void fan(int x,int y)
{
??? fan1(x,y);
??? fan1(x-1,y);
??? fan1(x+1,y);
??? fan1(x,y-1);
??? fan1(x,y+1);
}
void dfs(int x,int y,int b)
{
??? if(f())
??? {
??????? if(b<ans)
??????? {
??????????? ans=b;
??????????? return ;
??????? }
??? }
??? if(x>=4||y>=4) return ;
??? int xx=(x+1)%4;
??? int yy=y+(x+1)/4;
??? dfs(xx,yy,b);//入棧
??? fan(x,y);
??? dfs(xx,yy,b+1);
??? fan(x,y);
}
int main()
{
??? char ch;
??? for(int i=0;i<4;i++)
??? {
??????? for(int j=0;j<4;j++)
??????? {
????????? scanf("%c",&ch);
????????? if(ch=='b')
??????????? map[i][j]=0;
????????? else map[i][j]=1;
??????? }
??????? getchar();
??? }
??? dfs(0,0,0);
??? if (ans != 100)
??????? printf ("%d\n",ans);
??? else
??????? printf ("Impossible\n");
??? return 0;
}
?
總結(jié)
以上是生活随笔為你收集整理的poj1753Flip Game(dfs)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: [LeetCode] Remove Du
- 下一篇: 企业搜索引擎开发之连接器connecto