【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开始,沿着一条路一直走到底,如果发现不能到达目标解 ...
随机推荐
- matlab实现M/M/1排队系统
Matlab实现. 分为主函数 MyLine 和被调用函数 Func. 主函数 MyLine 实现在 Func 函数的基础上实现序贯法, 将平均等待队长作为每次模拟的 X,求出置信区间.Func 函数 ...
- JQuery选择器——《锋利的JQuery》
刚学CSS的时候我们已经接触了选择器,其实就是按照一定的规则选择出来我们想要获取到的元素.在这里,既然选择了用jQuery选择器,首先来谈谈JQuery选择器的优势: 1.简洁的写法:$()函数在很多 ...
- JS之this那些事
一直以来,对this的讨论都是热门话题.有人说掌握了this就掌握了JavaScript的80%,说法有点夸张,但可见this的重要性.至今记录了很多关于this的零碎笔记,今天就来个小结. 本人看过 ...
- ajax实现的点击数目加1代码实例
ajax实现的点击数目加1代码实例:在点击按钮实现数字增加效果代码实例一章节中,介绍如何点击按钮实现数字加1的效果,但是好像并没有什么实际用处,下面就分享一段相对完整的能够在实际应用中派上用场的代码, ...
- c# 快速修改图片颜色
public static void ChangeColour(this Bitmap bmp, byte inColourR, byte inColourG, byte inColourB, byt ...
- glyphicons-halflings-regular.woff2 文件 404
搜索了下,果然是因为mine没有配置的原因. http://stackoverflow.com/questions/32300578/how-to-remove-error-about-glyphic ...
- 同源策略和Jsonp、CORS
一.同源策略 同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响.可以说Web是构建在同源策略基础之 ...
- vue——计算属性和侦听器
一.计算属性(data中的相关数据) 侦听多个属性时——计算属性 comuted. 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护.例如: & ...
- js中各个排序算法和sort函数的比较
js中要实现数据排序,其实只需要用sort函数就能很好的满足了,但是我今天想知道他和其他排序算法的区别,比如耗时呀等.测了一组数据如下: // ---------- 一些排序算法 Sort = {} ...
- CSS样式编写案例
1.制作如图三角形效果: 步骤一:将右侧盒子设置为相对定位 步骤二:在右侧盒子里面新建个子盒子,设置宽高相等,为正方形,绝对定位 步骤三:将绝对定位的盒子用CSS3旋转属性旋转 2.制定如图的序列号 ...