时间限制(普通/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
 1 #include<stdio.h>
 2 char map[52][52];
 3 int n, m;
 4 bool is_ok(int i, int j)
 5 {
 6     if(map[i][j+1]=='0'&&map[i+1][j]=='0'&&map[i+1][j+1]=='0')
 7        return true;
 8     return false;
 9 }
10 void change(int i, int j, char c)
11 {
12     map[i][j]=map[i][j+1]=map[i+1][j]=map[i+1][j+1]=c;
13 }
14
15 int dfs()
16 {
17     int i, j;
18     for(i=0;i<n-1;i++)
19         for(j=0;j<m-1;j++)
20             if(map[i][j]=='0')
21             {
22                 if(is_ok(i,j))
23                 {
24                     change(i,j,'1');
25                     if(!dfs())  //不能再放了   返回1
26                     {
27                         change(i,j,'0');
28                         return 1;
29                     }
30                     change(i,j,'0');  //还原
31                 }
32             }
33     return 0;
34 }
35 main()
36 {
37     int i, j;
38     while(scanf("%d%d",&n,&m)!=EOF)
39     {
40         for(i=0;i<n;i++)
41             scanf("%s",map[i]);
42         int k=dfs();
43         if(k)
44             printf("Yes\n");
45         else
46             printf("No\n");
47
48     }
49 }

转载于:https://www.cnblogs.com/wzz1020/p/3331766.html

A New Tetris Game相关推荐

  1. HDU 1811 Rank of Tetris(并查集按秩合并+拓扑排序)

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

  2. HDU-1811 Rank of Tetris

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

  3. 俄罗斯方块 Tetris

    今天,为大家带来一个用Qt C++ (Windows环境下)做的一个简易俄罗斯方块小游戏 思路和模块介绍都在注释里面,其次就是一些项目中遇到的问题以及解决方案,在后面部分说明. 一.效果 测试图样 Q ...

  4. hdu 1760 A New Tetris Game(搜索博弈)

    题目链接:hdu 1760 A New Tetris Game 题意: 给你一个矩阵,0表示可以放格子,现在给你2*2的格子,lele先放,问是否能赢. 题解: 爆搜.具体看代码 1 #include ...

  5. 计算机网络技术俄罗斯方块,《The Tetris Effect》:这本新书讲述了俄罗斯方块的传奇故事...

    原标题:<The Tetris Effect>:这本新书讲述了俄罗斯方块的传奇故事 在游戏发展史上,俄罗斯方块是个传奇.没有一款游戏像它一样影响深远,受到全球不同人的喜爱.在即将出版的&l ...

  6. hdu 5374 Tetris(模拟)

    题目链接:hdu 5374 Tetris 模拟.每次进行操作时推断操作是否合法,合法才运行,否则跳过.每次一个token落地,推断一下是否有消除整行. #include <cstdio> ...

  7. [Shell]Tetris Game

    这篇文章主要介绍Shell脚本编写俄罗斯方块的方法,原文来自脚本之家,http://www.jb51.net/article/48926.htm 效果图: 代码: #!/bin/bash# Tetri ...

  8. HDU1811 Rank of Tetris【拓扑排序+并查集】

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

  9. 俄罗斯方块(Tetris)

    <俄罗斯方块>(Tetris, 俄文:Тетрис)是一款由俄罗斯人阿列克谢·帕基特诺夫于1984年6月发明的休闲游戏. 我将其作为我课程设计的题目,重温程序设计的基础.由于课设时间有限, ...

  10. Tetris(俄罗斯方块)

    mywindows.h #ifndef MYWINDOWS_H_INCLUDED #define MYWINDOWS_H_INCLUDED//避免重定义错误/*系统调用模块*/ #include &l ...

最新文章

  1. 计算机电缆djyvp工艺,计算机电缆dJyvP相关办法.pdf
  2. ASP.NET MVC学习资料 新增几个开源项目
  3. 使用Python运算一个字符串表达式
  4. 使用字符串切割,使手机号中间四位隐藏
  5. Redis Java调用
  6. Python divmod 函数 - Python零基础入门教程
  7. 【windows】windows允许 ICMP协议(允许ping)
  8. php查看mysql连接数_查看mysql当前连接数
  9. gitee怎么仓库间传文件_薄书的Gitee 码云使用教程学习纪录 - 薄书
  10. 分子量 (Molar Mass,ACM/ICPC Seoul 2007,UVa 1586)
  11. ubuntu中的 magick++编程问题及编译方法
  12. 2021-05-26--CHEN scary
  13. iTunes导入歌曲和铃声到iphone
  14. Django的models中ORM
  15. 网线8芯线各自作用是什么?几种常用的网线定义行业标准
  16. JAVA强制类型转换常见错误
  17. 同盾设备指纹简单分析及手机相关ID了解
  18. 春天又来了,做好自己的一年之计
  19. 超越阿迪、逼近耐克,安踏的“新基建”到底有多强?
  20. Linux安装Maven一条龙服务

热门文章

  1. 【第51天| 309.最佳买卖股票时机含冷冻期 ● 714.买卖股票的最佳时机含手续费 】
  2. 锁定计算机不让u盘导出,不让U盘复制电脑文件的方法
  3. 网页上实现打印指定区域的方法实现
  4. YTU.3237: 幸运数字
  5. oracle中插曲时间,Oracle 11G 数据库迁移【expdp/impdp】
  6. 2022年全球市场4D雷达总体规模、主要生产商、主要地区、产品和应用细分研究报告
  7. springboot 定时任务 Scheduled(fixedRate ,fixedDelay ,initialDelay,cron)使用
  8. 知识付费目前面临的问题和未来的趋势
  9. JavaScript写的一个图片的抽奖功能的案例
  10. linux ipcs清空,Linux ipcs命令与ipcrm命令的用法详解