UVA227-Puzzle
2018-10-25-11:45:44
原题链接
水题,卡输入输出,不然怎么能说是ACM World Finals呢。
本题大意
大体意思就是给你一个5*5的棋盘,每次你需要先输入棋盘,然后输入一连串指令,指令以‘0’结尾,当棋盘第0行第0列为'Z'时表示游戏结束。
本题思路
拿到题的第一反应就是输入棋盘,接着一 一读入命令并执行即可。但是一定要注意输入输出问题。
每个样例输出之间有一个空行,但切记输入之间无换行。
本题拿来练习输入输出是一道不错的题。
1 #include <cstdio> 2 #include <iostream> 3 using namespace std; 4 void Swap(char &s1,char &s2); 5 6 int main() 7 { 8 char ans,s[5][5]; 9 int dx,dy,Case=0;//用于储存空格位置 10 while(true){ 11 bool flag=true; 12 for(int i=0;i<5;i++){ 13 for(int j=0;j<5;j++){ 14 scanf("%c",&s[i][j]); 15 if(s[0][0]=='Z') return 0; 16 if(s[i][j]==' '){ 17 dx=i; dy=j; 18 } 19 } 20 getchar(); 21 } 22 while((ans=getchar())!='0'){ 23 if(ans=='A'&&dx-1>=0){ 24 Swap(s[dx][dy],s[dx-1][dy]); 25 dx-=1; 26 } 27 else if(ans=='B'&&dx+1<=4){ 28 Swap(s[dx][dy],s[dx+1][dy]); 29 dx+=1; 30 } 31 else if(ans=='L'&&dy-1>=0){ 32 Swap(s[dx][dy],s[dx][dy-1]); 33 dy-=1; 34 } 35 else if(ans=='R'&&dy+1<=4){ 36 Swap(s[dx][dy],s[dx][dy+1]); 37 dy+=1; 38 } 39 else if(ans!='\n') flag=false; 40 } 41 getchar(); 42 if(Case) printf("\n"); 43 printf("Puzzle #%d:\n",++Case); 44 if(flag){ 45 for(int i=0;i<5;i++){ 46 for(int j=0;j<5;j++) 47 if(!j) printf("%c",s[i][j]); 48 else printf(" %c",s[i][j]); 49 printf("\n"); 50 } 51 } 52 else 53 printf("This puzzle has no final configuration.\n"); 54 } 55 return 0; 56 } 57 void Swap(char &s1,char &s2){ 58 char c=s1; 59 s1=s2; 60 s2=c; 61 }
转载于:https://www.cnblogs.com/bianjunting/p/9848909.html
UVA227-Puzzle相关推荐
- UVA227 Puzzle
问题链接:UVA227 Puzzle.基础训练级的问题,用C语言编写程序. 问题简述:一个5×5的网格,一个格子是空的,其他格子各有一个字母,一共有四种指令:A,B,L,R,分别表示把空格上.下.左. ...
- 算法竞赛入门经典(第二版) | 习题3-5 谜题 (UVa227,Puzzle)(World Finals 1993)
乍一看是一个大水题,但World Finals这两个词标示着老子世界决赛真题虽然题目很水但是数据就能卡死你.整整搞了五个小时,期间经历过崩溃(花了这么多时间搞一道大水题,还没AC),但好在坚持下来了, ...
- ACM题解系列之一:刘汝佳:《算法竞赛入门经典》(第2版)
题是书中的题,解法参照了书中的解法,不少解法都做了简化和改进. 做程序,就要努力做到自己的程序是最好的! 第3章例题 POJ1488 UVA272 UVALive5381 TEX Quote[输入输出 ...
- [笔记]cin、cout与scanf、printf的效率差异对比分析
之前上传UVa227 puzzle时,好不容易AC了,但发现自己用时50(ms),而在VJ上看到人家都是40ms.20ms,于是打开一个20ms的代码查看人家强在哪里.但结果研究了半天感觉差不多,于是 ...
- TYUT-A专题题解(一)
TYUT-A专题题解(一) 01A Ad Hoc UVA353 LA5247 Pesky Palindromes[回文] - 海岛Blog - CSDN博客 UVA947 Master Mind He ...
- Competitive Programming 3题解
题目一览: Competitive Programming 3: The New Lower Bound of Programming Contests(1) Competitive Programm ...
- ICPC程序设计题解书籍系列之一:刘汝佳:《算法竞赛入门经典》(第2版)
题是书中的题,部分解法参照了书中的解法,不少解法都做了简化和改进. 做程序,就要努力做到自己的程序是最好的! 第3章 数组和字符串(例题) POJ1488 UVA272 UVALive5381 TEX ...
- 《算法竞赛入门经典(第2版)》——学习记录
前言: 这里主要记录本人在学习紫书过程中充分理解过的题目的AC代码,便于以后回顾时查找代码和思路,毕竟看别人的真的有点难懂.此外,本书甚至是本书之外的相关知识学习也可能在此留下记录. 作为一只 ...
- 谜题 (Puzzle,ACM/ICPC World Finals 1993,UVa227)
题目描述:算法竞赛入门经典习题3-5 题目思路:模拟题 #include <stdio.h> #include <string.h> #define maxn 55 char ...
- Puzzle——模拟
原题链接: https://vjudge.net/problem/UVA-227 题目描述: 1 > 有一个5*5的网格,只有一个格子是空格,其余的都是字母. 2 > 4个指令 A,B,L ...
最新文章
- 毕业去哪儿?清华大学2018年毕业生就业质量报告发布
- 主板支持最大内存查看软件
- 谷歌chrome浏览器的源码分析(五)
- 【Java】15 输入输出
- 哈夫曼树编码与译码(完整C/C++实现代码)
- python static函数_python函数怎么实现static变量?
- CentOS 系统添加网卡
- 看别人情侣空间显示服务器繁忙什么意思,调查13000位80后年轻人,他们的感情状态究竟如何?...
- Bootstrap 排版引用
- Linux C语言操作SQLite数据库
- 自然资源部标准地图底图转矢量Shapefile并配准
- QT 操作 QLabel
- PRD:腾讯会议APP产品需求文档
- 微信摇一摇效果HTML,JavaScript+H5实现微信摇一摇功能
- Java将图片转为Base64
- ES6(ECMAScript6)-ES11 从入门到修仙
- python学习第八天---用Django框架创建可重用注册登录系统
- TCPDF 解决中文乱码的问题
- 智力题:一次测试找出1000瓶酒中的唯一一瓶毒酒
- echarts图形铺满容器
热门文章
- 征战蓝桥 —— 2014年第五届 —— C/C++A组第1题——猜年龄
- The SetStack Computer
- 【Linux】一步一步学Linux——dpkg-trigger命令(276)
- loop指令 c语言,arm汇编loop指令
- LeetCode 287. Find the Duplicate Number (时间复杂度O(n)) + 链表判断环
- 2020-09-11
- idea单行注释对齐修改Settings - Editor - Code Style-Code Generation,取消comment code的勾选
- uC/OS II--与ECB操作相关的四个函数
- HDU 2570 迷瘴
- A-ID and password