标签:hdu1760 a new tetris game 博弈 搜索
4 4 0000 0000 0000 0000 4 4 0000 0010 0100 0000
Yes No
#include <stdio.h>
#include <string.h>
#define MAX 55
bool map[MAX][MAX] ;
int n, m;
bool judge(int i , int j)
{
if(i+1<n && j+1<m)
{
if(map[i][j] && map[i+1][j] && map[i][j+1] && map[i+1][j+1])
{
return true ;
}
}
return false ;
}
bool DFS()
{
for(int i = 0 ; i < n ; ++i)
{
for(int j = 0 ; j < m ; ++j)
{
if(judge(i,j))
{
map[i][j] = map[i+1][j] = map[i][j+1] = map[i+1][j+1] = false ;
if(!DFS())
{
map[i][j] = map[i+1][j] = map[i][j+1] = map[i+1][j+1] = true ;
return true ;
}
map[i][j] = map[i+1][j] = map[i][j+1] = map[i+1][j+1] = true ;
}
}
}
return false ;
}
int main()
{
while(~scanf("%d%d",&n,&m))
{
char line[100] ;
for(int i = 0 ; i < n ; ++i)
{
scanf("%s",line) ;
for(int j = 0 ; j < m ; ++j)
{
if(line[j] == '0')
map[i][j] = true ;
else
map[i][j] = false ;
}
}
if(DFS())
puts("Yes") ;
else
puts("No") ;
}
return 0 ;
}hdu 1760 A New Tetris Game 博弈~~搜索求sg函数
标签:hdu1760 a new tetris game 博弈 搜索
原文地址:http://blog.csdn.net/lionel_d/article/details/44752273