【OJ-UVa227】
耗时一周。哭。
本题重在输入输出。所以对英文题目的理解非常重要。看清楚题目,省时省力。
题目要点:
1、开始有5×5的数据,每行仅有5个字符。注意:样例输入中的尾部空格是无法复制的(UVa官网上),其实是有的,所以不用考虑有多个空格或略过行尾空格直接换行的情况(我当时看样例输入行尾空格被略过直接换行,而大费周折)。
Each display line contains exactly 5 characters, beginning with the character on the leftmost square
2、动作指令仅有 A B L R 组成,可不用考虑其它非法字符,但是要考虑换行符。
The sequence of moves is represented by a sequence of As, Bs, Rs
3、动作指令可以出现多行,总以 0 结束。
This sequence of moves may be spread over several lines, but it always ends in the digit 0
4、输出格式有特殊要求:两个谜题puzzle中间用空行隔开。
Separate output from different puzzle records by one blank line.
简单清晰的AC代码可参考这里。以防该博客被删,我粘贴到下面。
顺便写个注解。
1、读取单个字符存储到 s[5][5] 中
2、判断首个字符 是否 'Z'
3、顺便找出 空格符
4、吞掉5*5数据每行末尾的 换行符
这样,5*5的数据就存储好了。
1、读取动作指令,进行移动(和拼图类似)
1.1、判断动作指令是否合规
1.2、空格和要移动的字符互换值
1.3、更新空格的坐标
2、吞掉结束标志字符 0
3、如果是首个puzzle,不输出\n(如果不是首个puzzle,则输出每两个puzzle的中间空行)
4、打印 Puzzle #1:
5、第一列字符,打印 字符,第二列到第五列,打印 字符+空格,最后每行补个 \n 换行符
#include <cstdio>
#include <iostream>
using namespace std;
void Swap(char &s1,char &s2); int main()
{
char ans,s[][];
int dx,dy,Case=;//用于储存空格位置
while(true){
bool flag=true;
for(int i=;i<;i++){
for(int j=;j<;j++){
scanf("%c",&s[i][j]);
if(s[][]=='Z') return ;
if(s[i][j]==' '){
dx=i; dy=j;
}
}
getchar();
}
while((ans=getchar())!=''){
if(ans=='A'&&dx->=){
Swap(s[dx][dy],s[dx-][dy]);
dx-=;
}
else if(ans=='B'&&dx+<=){
Swap(s[dx][dy],s[dx+][dy]);
dx+=;
}
else if(ans=='L'&&dy->=){
Swap(s[dx][dy],s[dx][dy-]);
dy-=;
}
else if(ans=='R'&&dy+<=){
Swap(s[dx][dy],s[dx][dy+]);
dy+=;
}
else if(ans!='\n') flag=false;
}
getchar();
if(Case) printf("\n");
printf("Puzzle #%d:\n",++Case);
if(flag){
for(int i=;i<;i++){
for(int j=;j<;j++)
if(!j) printf("%c",s[i][j]);
else printf(" %c",s[i][j]);
printf("\n");
}
}
else
printf("This puzzle has no final configuration.\n");
}
return ;
}
void Swap(char &s1,char &s2){
char c=s1;
s1=s2;
s2=c;
}
【OJ-UVa227】的更多相关文章
- 【数据结构】【图文】【oj习题】 图的拓扑排序(邻接表)
拓扑排序: 按照有向图给出的次序关系,将图中顶点排成一个线性序列,对于有向图中没有限定次序关系的顶点,则可以人为加上任意的次序关系,由此所得顶点的线性序列称之为拓扑有序序列.显然对于有回路的有向图得不 ...
- 【水题】NOIP201504推销员
NOIP201504推销员 [问题描述] 阿明是一名推销员,他奉命到螺丝街推销他们公司的产品.螺丝街是一条死胡同,出口与入口是同一个,街道的一侧是围墙,另一侧是住户.螺丝街一共有 N 家住户,第 ...
- 【算法入门】广度/宽度优先搜索(BFS)
广度/宽度优先搜索(BFS) [算法入门] 1.前言 广度优先搜索(也称宽度优先搜索,缩写BFS,以下采用广度来描述)是连通图的一种遍历策略.因为它的思想是从一个顶点V0开始,辐射状地优先遍历其周围较 ...
- 【POJ 1125】Stockbroker Grapevine
id=1125">[POJ 1125]Stockbroker Grapevine 最短路 只是这题数据非常水. . 主要想大牛们试试南阳OJ同题 链接例如以下: http://acm. ...
- CJOJ 1308 【HNOI 2002 】营业额统计 / CodeVS 1296 营业额统计(STL,二分)
CJOJ 1308 [HNOI 2002 ]营业额统计 / CodeVS 1296 营业额统计(STL,二分) Description Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一 ...
- 【NOIP2017 OFO】
·奇怪的标题可能预示着这一篇博文不是讲算法或者分享题目的吧. [一只情绪化的兔子] 今年的11月12日出奇地比去年温暖.两场比赛结束后的我们在临走前去尝试了OFO共享单车,在成都电子科技大学 ...
- 【OI新闻】2016.10.06
今天有人说好多OJ都狗记邓了- 翻了一下,恭喜以下OJ赢得大奖,获得狗记邓徽章一枚 一等奖Codevs 二等奖Bzoj 三等奖洛谷 后记-感悟 如果正在为OJ发愁的朋友,不要悲伤,不要心急,换一换OJ ...
- 图像手工画效果【QT+OpenCV】
效果例如以下 [木雕]
- P2699 【数学1】小浩的幂次运算
原题链接 https://www.luogu.org/problemnew/show/P2699 P2699 [数学1]小浩的幂次运算 首先第一眼看这个题就知道要暴力枚举w^i 看是否在区间[l,r] ...
- 【算法入门】深度优先搜索(DFS)
深度优先搜索(DFS) [算法入门] 1.前言深度优先搜索(缩写DFS)有点类似广度优先搜索,也是对一个连通图进行遍历的算法.它的思想是从一个顶点V0开始,沿着一条路一直走到底,如果发现不能到达目标解 ...
随机推荐
- JavaScript数据类型 数据转换
JavaScript数据类型分为两种:原始类型和对象类型,原始类型有:number(数字).string(文本).boolean(布尔值).null(空).undefined(未定义):对象类型有:A ...
- C# 判断List集合中是否有重复的项
/*在.Net 3.5 以上*/ ).Count() >= ;
- 安装VS2013时,如何避开IE10的限制
安装VS2013时,如何避开IE10的限制 VS就会告诉我们目前环境不适合安装VS2013,必须升级IE版本到IE10. 如果不想安装IE10,有没有办法呢? 答案肯定是有的. 将下面一段文字,储存为 ...
- 新手的grid布局
html部分 <!DOCTYPE html><html><head><meta charset="utf-8"><link r ...
- 【Android】1.0 安卓生猛上手
1.Android操作系统,由安迪鲁宾发明,原发明用于照相机操作系统,市场反应惨淡,需求不足,后2005年被谷歌收购,用于智能手机操作系统. 2.logo来源:设计师上厕所看到男女厕所区别标志联想创作 ...
- vue 音乐播放器报错
使用Vue报错[Vue warn]: Error in nextTick: "TypeError: fn.bind is not a function"页面进不去. 检查:看看da ...
- Swiper双向轮播
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- SCI收录的期刊查询
SCI 收录的期刊查询(动态) 1.Science Citation Index (SCI)收录期刊查询地址:http://www.isinet.com/cgi-bin/jrnlst/jlopti ...
- visual studio code配置项
// 通过将设置放入设置文件中来覆盖设置. { //-------- 编辑器配置 -------- // 控制字体系列. "editor.fontFamily": "Co ...
- 二、安装桌面——Linux学习笔记
安装桌面并不是商业化用的,只是为了熟悉Linux文档结构而已. 这个比较简单 1.输入安装桌面命令 # yum -y groups install "GNOME Desktop" ...