A New Tetris Game
描述
曾经,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相关推荐
- HDU 1811 Rank of Tetris(并查集按秩合并+拓扑排序)
Rank of Tetris Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...
- HDU-1811 Rank of Tetris
Rank of Tetris Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...
- 俄罗斯方块 Tetris
今天,为大家带来一个用Qt C++ (Windows环境下)做的一个简易俄罗斯方块小游戏 思路和模块介绍都在注释里面,其次就是一些项目中遇到的问题以及解决方案,在后面部分说明. 一.效果 测试图样 Q ...
- hdu 1760 A New Tetris Game(搜索博弈)
题目链接:hdu 1760 A New Tetris Game 题意: 给你一个矩阵,0表示可以放格子,现在给你2*2的格子,lele先放,问是否能赢. 题解: 爆搜.具体看代码 1 #include ...
- 计算机网络技术俄罗斯方块,《The Tetris Effect》:这本新书讲述了俄罗斯方块的传奇故事...
原标题:<The Tetris Effect>:这本新书讲述了俄罗斯方块的传奇故事 在游戏发展史上,俄罗斯方块是个传奇.没有一款游戏像它一样影响深远,受到全球不同人的喜爱.在即将出版的&l ...
- hdu 5374 Tetris(模拟)
题目链接:hdu 5374 Tetris 模拟.每次进行操作时推断操作是否合法,合法才运行,否则跳过.每次一个token落地,推断一下是否有消除整行. #include <cstdio> ...
- [Shell]Tetris Game
这篇文章主要介绍Shell脚本编写俄罗斯方块的方法,原文来自脚本之家,http://www.jb51.net/article/48926.htm 效果图: 代码: #!/bin/bash# Tetri ...
- HDU1811 Rank of Tetris【拓扑排序+并查集】
Rank of Tetris Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tota ...
- 俄罗斯方块(Tetris)
<俄罗斯方块>(Tetris, 俄文:Тетрис)是一款由俄罗斯人阿列克谢·帕基特诺夫于1984年6月发明的休闲游戏. 我将其作为我课程设计的题目,重温程序设计的基础.由于课设时间有限, ...
- Tetris(俄罗斯方块)
mywindows.h #ifndef MYWINDOWS_H_INCLUDED #define MYWINDOWS_H_INCLUDED//避免重定义错误/*系统调用模块*/ #include &l ...
最新文章
- 计算机电缆djyvp工艺,计算机电缆dJyvP相关办法.pdf
- ASP.NET MVC学习资料 新增几个开源项目
- 使用Python运算一个字符串表达式
- 使用字符串切割,使手机号中间四位隐藏
- Redis Java调用
- Python divmod 函数 - Python零基础入门教程
- 【windows】windows允许 ICMP协议(允许ping)
- php查看mysql连接数_查看mysql当前连接数
- gitee怎么仓库间传文件_薄书的Gitee 码云使用教程学习纪录 - 薄书
- 分子量 (Molar Mass,ACM/ICPC Seoul 2007,UVa 1586)
- ubuntu中的 magick++编程问题及编译方法
- 2021-05-26--CHEN scary
- iTunes导入歌曲和铃声到iphone
- Django的models中ORM
- 网线8芯线各自作用是什么?几种常用的网线定义行业标准
- JAVA强制类型转换常见错误
- 同盾设备指纹简单分析及手机相关ID了解
- 春天又来了,做好自己的一年之计
- 超越阿迪、逼近耐克,安踏的“新基建”到底有多强?
- Linux安装Maven一条龙服务
热门文章
- 【第51天| 309.最佳买卖股票时机含冷冻期 ● 714.买卖股票的最佳时机含手续费 】
- 锁定计算机不让u盘导出,不让U盘复制电脑文件的方法
- 网页上实现打印指定区域的方法实现
- YTU.3237: 幸运数字
- oracle中插曲时间,Oracle 11G 数据库迁移【expdp/impdp】
- 2022年全球市场4D雷达总体规模、主要生产商、主要地区、产品和应用细分研究报告
- springboot 定时任务 Scheduled(fixedRate ,fixedDelay ,initialDelay,cron)使用
- 知识付费目前面临的问题和未来的趋势
- JavaScript写的一个图片的抽奖功能的案例
- linux ipcs清空,Linux ipcs命令与ipcrm命令的用法详解