时间限制(普通/Java):1000MS/10000MS     运行内存限制:65536KByte 总提交: 40            测试通过: 12

描述

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

输入

本题目包含多组测试,请处理到文件结束。 每组测试第一行包含两个正整数N和M(0<N*M<50)分别代表棋盘的行数和列数。 接下来有N行,每行M个0或1的数字代表整个棋盘。 其中0是代表棋盘该位置可用,1是代表棋盘该位置不可用
你可以假定,每个棋盘中,0的个数不会超过40个。

输出

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

样例输入

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

样例输出

Yes
No
 #include<stdio.h>
char map[][];
int n, m;
bool is_ok(int i, int j)
{
if(map[i][j+]==''&&map[i+][j]==''&&map[i+][j+]=='')
return true;
return false;
}
void change(int i, int j, char c)
{
map[i][j]=map[i][j+]=map[i+][j]=map[i+][j+]=c;
} int dfs()
{
int i, j;
for(i=;i<n-;i++)
for(j=;j<m-;j++)
if(map[i][j]=='')
{
if(is_ok(i,j))
{
change(i,j,'');
if(!dfs()) //不能再放了 返回1
{
change(i,j,'');
return ;
}
change(i,j,''); //还原
}
}
return ;
}
main()
{
int i, j;
while(scanf("%d%d",&n,&m)!=EOF)
{
for(i=;i<n;i++)
scanf("%s",map[i]);
int k=dfs();
if(k)
printf("Yes\n");
else
printf("No\n"); }
}

A New Tetris Game的更多相关文章

  1. x01.Tetris: 俄罗斯方块

    最强大脑有个小孩玩俄罗斯方块游戏神乎其技,那么,就写一个吧,玩玩而已. 由于逻辑简单,又作了一些简化,所以代码并不多. using System; using System.Collections.G ...

  2. 拓扑排序 - 并查集 - Rank of Tetris

    Description 自从Lele开发了Rating系统,他的Tetris事业更是如虎添翼,不久他遍把这个游戏推向了全球. 为了更好的符合那些爱好者的喜好,Lele又想了一个新点子:他将制作一个全球 ...

  3. HDU1760 A New Tetris Game NP态

    A New Tetris Game Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  4. HDU 1811 Rank of Tetris(拓扑排序+并查集)

    题目链接: 传送门 Rank of Tetris Time Limit: 1000MS     Memory Limit: 32768 K Description 自从Lele开发了Rating系统, ...

  5. ACM: hdu 1811 Rank of Tetris - 拓扑排序-并查集-离线

    hdu 1811 Rank of Tetris Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & % ...

  6. hdu 1811 Rank of Tetris (并查集+拓扑排序)

    Rank of Tetris Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  7. TETRIS 项目开发笔记

    java学习一个月了,没有什么进展,期间又是复习Linux,又是看Android,瞻前顾后,感觉自己真的是贪得无厌, 学习的东西广而不精,所以写出的文章也就只能泛泛而谈.五一小长假,哪里都没有去,也不 ...

  8. 用Shell实现俄罗斯方块代码(Tetris.sh)

    本代码来源于网络: 文件下载地址:http://files.cnblogs.com/files/DreamDrive/Tetris.sh #!/bin/bash # Tetris Game # 10. ...

  9. Rank of Tetris HDU--1881

    Rank of Tetris Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

随机推荐

  1. [转]SIP穿越NAT&FireWall解决方案

    原文链接(也是转载)http://blog.csdn.net/yetyongjin/article/details/6881491.我修改了部分错字.   SIP从私网到公网会遇到什么样的问题呢? 1 ...

  2. git -C

    https://git-scm.com/docs/git -C <path> Run as if git was started in <path> instead of th ...

  3. 【转】雪崩光电二极管(APD)偏置电源及其电流监测

    摘要:本文提供的参考设计用于实现APD偏置电源及其电流监测.基于MAX15031 DC-DC转换器,该电路能够将2.7V至11V范围的输入电压经过DC-DC电源转换器后得到一个70V.4mA电源. 下 ...

  4. XSS防御篇

    上周要求写自己用任何语言写一个留言版,存到数据库中,用自己的办法来解决XSS 我用了JSP+MYSQL,自己写了一个过滤器来防御WEB XSS漏洞 package com.mess.filter; p ...

  5. SQL生成包含年月日的流水号

    --************************************************************************************************** ...

  6. 让WinForm窗体的大小固定,不能调整大小

    窗体FormBorderStyle属性设置为:FixedSingle,再把最大化禁用就可以了

  7. react入门笔记

    this.props.children是任何内嵌的元素 利用ref属性给子组件命名,this.refs引用组件,getDOMNode()获取本地的DOM元素,如: this.refs.author.g ...

  8. DOM 表单应用

    1.大小写转换 <script> var a='aaa'; var b='AaA'; var c='BbB'; //alert(c.toLowerCase()); //把含有大写的字母转换 ...

  9. java使用方法总结

    第一章 字符串 . 获取字符串的长度: length() . 判断字符串的前缀或后缀与已知字符串是否相同 前缀 startsWith(String s) .后缀 endsWith(String s) ...

  10. Redis基础知识之————php-Redis 常用命令专题

    Keys del,delete - 删除键 dump - 返回存储在指定键值的序列化版本. exists - 确定键是否存在 expire,setTimeout,pexpire - 设置键的生存时间( ...