HDOJ 题目1760 A New Tetris Game(DFS,博弈)

A New Tetris Game

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 1212    Accepted Submission(s): 582

Problem Description

曾经,Lele和他姐姐最喜欢,玩得最久的游戏就是俄罗斯方块(Tetris)了。

渐渐得,Lele发觉,玩这个游戏只需要手快而已,几乎不用经过大脑思考。

所以,Lele想出一个新的玩法。

Lele和姐姐先拿出一块长方形的棋盘,这个棋盘有些格子是不可用的,剩下的都是可用的。Lele和姐姐拿出俄罗斯方块里的正方形方块(大小为2*2的正方形方块)轮流往棋盘里放,要注意的是,放进去的正方形方块不能叠在棋盘不可用的格子上,也不能叠在已经放了的正方形方块上。

到最后,谁不能再放正方形方块,谁就输了。

现在,假设每次Lele和姐姐都很聪明,都能按最优策略放正方形,并且每次都是Lele先放正方形,你能告诉他他是否一定能赢姐姐吗?

Input

本题目包含多组测试,请处理到文件结束。

每组测试第一行包含两个正整数N和M(0<N*M<50)分别代表棋盘的行数和列数。

接下来有N行,每行M个0或1的数字代表整个棋盘。

其中0是代表棋盘该位置可用,1是代表棋盘该位置不可用

你可以假定,每个棋盘中,0的个数不会超过40个。

Output

对于每一组测试,如果Lele有把握获胜的话,在一行里面输出"Yes",否则输出"No"。

Sample Input

4 4
0000
0000
0000
0000
4 4
0000
0010
0100
0000

Sample Output

Yes
No

Author

linle

Source

2007省赛集训队练习赛(6)_linle专场

Recommend

lcy   |   We have carefully selected several similar problems for you:  1404 1729 1809 3094 2580

ac代码

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char map[55][55];
int n,m;
int dfs(char map[55][55])
{
	char temp[55][55];
	int i,j,x,y;
	for(i=1;i<n;i++)
	{
		for(j=1;j<m;j++)
		{
			if(map[i][j]=='0'&&map[i-1][j]=='0'&&map[i][j-1]=='0'&&map[i-1][j-1]=='0')
			{
				/*for(k=0;k<n;k++)
				{
				strcpy(map[k],temp[k]);
				}*/
				for(x=0;x<n;x++)
				{
					for(y=0;y<m;y++)
						temp[x][y]=map[x][y];
				}
				temp[i][j]=temp[i-1][j]=temp[i-1][j-1]=temp[i][j-1]='1';
				if(dfs(temp)==0)//能通向必败点的都是必胜点
					return 1;
			}
		}
	}
	return 0;//只能通向必胜点的是必败点
}
int main()
{
	//int n,m;
	while(scanf("%d%d",&n,&m)!=EOF)
	{
		int i,j;
		for(i=0;i<n;i++)
		{
	//		for(j=0;j<m;j++)
	//		{
				scanf("%s",&map[i]);
	//		}
		}
		if(dfs(map))
			printf("Yes\n");
		else
			printf("No\n");
	}
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-06 03:53:43

HDOJ 题目1760 A New Tetris Game(DFS,博弈)的相关文章

【HDOJ】1760 A New Tetris Game

博弈,主要是求SG值.终于做出点儿感觉. 1 /* 1760 */ 2 #include <cstdio> 3 #include <cstring> 4 #include <cstdlib> 5 6 #define MAXN 55 7 8 char map[MAXN][MAXN]; 9 int n, m; 10 11 int cal_SG() { 12 int i, j, k, r, p; 13 14 for (i=0; i<n-1; ++i) { 15 for

HDOJ 题目4738 Caocao&#39;s Bridges(双联通,求桥)

Caocao's Bridges Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1752    Accepted Submission(s): 642 Problem Description Caocao was defeated by Zhuge Liang and Zhou Yu in the battle of Chibi. B

HDOJ题目3729 I&#39;m Telling the Truth(二分图)

I'm Telling the Truth Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1629    Accepted Submission(s): 805 Problem Description After this year's college-entrance exam, the teacher did a survey i

HDOJ 题目分类

HDOJ 题目分类 /* * 一:简单题 */ 1000:    入门用:1001:    用高斯求和公式要防溢出1004:1012:1013:    对9取余好了1017:1021:1027:    用STL中的next_permutation()1029:1032:1037:1039:1040:1056:1064:1065:1076:    闰年 1084:1085:1089,1090,1091,1092,1093,1094, 1095, 1096:全是A+B1108:1157:1196:1

HDU-1760 A New Tetris Game DFS

曾经,Lele和他姐姐最喜欢,玩得最久的游戏就是俄罗斯方块(Tetris)了. 渐渐得,Lele发觉,玩这个游戏只需要手快而已,几乎不用经过大脑思考. 所以,Lele想出一个新的玩法. Lele和姐姐先拿出一块长方形的棋盘,这个棋盘有些格子是不可用的,剩下的都是可用的.Lele和姐姐拿出俄罗斯方块里的正方形方块(大小为2*2的正方形方块)轮流往棋盘里放,要注意的是,放进去的正方形方块不能叠在棋盘不可用的格子上,也不能叠在已经放了的正方形方块上. 到最后,谁不能再放正方形方块,谁就输了. 现在,假

【HDOJ】1811 Rank of Tetris

并查集+拓扑排序.使用并查集解决a = b的情况. 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <queue> 5 using namespace std; 6 7 #define MAXN 10005 8 9 typedef struct ArcNode { 10 int adjvex; 11 ArcNode *next; 12 } ArcNode; 1

HDOJ 题目3966 Aragorn&#39;s Story(Link Cut Tree成段加减点权,查询点权)

Aragorn's Story Time Limit: 10000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5505    Accepted Submission(s): 1441 Problem Description Our protagonist is the handsome human prince Aragorn comes from The Lor

HDOJ 题目4349 Xiao Ming&#39;s Hope(找规律)

Xiao Ming's Hope Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1515    Accepted Submission(s): 1015 Problem Description Xiao Ming likes counting numbers very much, especially he is fond of co

HDOJ 题目1881 毕业bg(DFS)

毕业bg Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submission(s) : 6   Accepted Submission(s) : 3 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description 每年毕业的季节都会有大量毕业生发起狂欢,好朋友们相约吃散伙饭,网络上