[UVA227][ACM/ICPC WF 1993]Puzzle (恶心模拟)
各位大佬都好厉害……
这个ACM/ICPC1993总决赛算黄题%%%
我个人认为至少要绿题。
虽然算法上面不是要求很大
但是操作模拟是真的恶心……
主要是输入输出的难。
对于ABLR只需要模拟即可
遇到非法指令退出
(输入输出真的很麻烦啊!!)
贴代码
#include<bits/stdc++.h>
#define MAXN 5
using namespace std;
char grid[MAXN][MAXN];
int blankrow, blankcol, nextrow, nextcol;
int move(char move)
{
if(move == 'A') {
nextrow = blankrow - ;
nextcol = blankcol;
} else if(move == 'B') {
nextrow = blankrow + ;
nextcol = blankcol;
} else if(move == 'L') {
nextrow = blankrow;
nextcol = blankcol - ;
} else if(move == 'R') {
nextrow = blankrow;
nextcol = blankcol + ;
} else
return ;
if(nextrow >= && nextrow < MAXN && nextcol >= && nextcol < MAXN) {
grid[blankrow][blankcol] = grid[nextrow][nextcol];
grid[nextrow][nextcol] = ' ';
blankrow = nextrow;
blankcol = nextcol;
return ;
} else
return ;
}
int main(void)
{
int caseno=, okflag, i, j;
char c;
while((c=getchar()) != 'Z') {
for(i=; i<MAXN; i++)
for(j=; j<MAXN; j++) {
grid[i][j] = c;
if(c == ' ' || c == '\n') {
blankrow = i;
blankcol = j;
grid[i][j] = ' ';
}
c = getchar();
if(j == MAXN- && c == '\n')
c = getchar();
}
okflag = ;
while(c != '') {
if(c != '\n') {
if(move(c)){
okflag = ;
break;
}
}
c = getchar();
if(c == '\n')
c = getchar();
}
while(c != '')
c = getchar();
while(c != '\n')
c = getchar();
if(++caseno > )
printf("\n");
printf("Puzzle #%d:\n", caseno);
if(okflag) {
for(i=; i<MAXN; i++)
printf("%c %c %c %c %c\n", grid[i][], grid[i][], grid[i][], grid[i][], grid[i][]);
} else
printf("This puzzle has no final configuration.\n");
}
return ;
}
[UVA227][ACM/ICPC WF 1993]Puzzle (恶心模拟)的更多相关文章
- ACM/ICPC 之 用双向链表 or 模拟栈 解“栈混洗”问题-火车调度(TSH OJ - Train)
本篇用双向链表和模拟栈混洗过程两种解答方式具体解答“栈混洗”的应用问题 有关栈混洗的定义和解释在此篇:手记-栈与队列相关 列车调度(Train) 描述 某列车调度站的铁道联接结构如Figure 1所示 ...
- hduoj 4708 Rotation Lock Puzzle 2013 ACM/ICPC Asia Regional Online —— Warmup
http://acm.hdu.edu.cn/showproblem.php?pid=4708 Rotation Lock Puzzle Time Limit: 2000/1000 MS (Java/O ...
- HDU 5873 Football Games 【模拟】 (2016 ACM/ICPC Asia Regional Dalian Online)
Football Games Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)To ...
- HDU 4041 Eliminate Witches! (模拟题 ACM ICPC 2011亚洲北京赛区网络赛)
HDU 4041 Eliminate Witches! (模拟题 ACM ICPC 2011 亚洲北京赛区网络赛题目) Eliminate Witches! Time Limit: 2000/1000 ...
- 【转】lonekight@xmu·ACM/ICPC 回忆录
转自:http://hi.baidu.com/ordeder/item/2a342a7fe7cb9e336dc37c89 2009年09月06日 星期日 21:55 初识ACM最早听说ACM/ICPC ...
- hduoj 4710 Balls Rearrangement 2013 ACM/ICPC Asia Regional Online —— Warmup
http://acm.hdu.edu.cn/showproblem.php?pid=4710 Balls Rearrangement Time Limit: 6000/3000 MS (Java/Ot ...
- 【转】ACM/ICPC生涯总结暨退役宣言—alpc55
转自:http://hi.baidu.com/accplaystation/item/ca4c2ec565fa0b7fced4f811 ACM/ICPC生涯总结暨退役宣言—alpc55 前言 早就该写 ...
- hduoj 4712 Hamming Distance 2013 ACM/ICPC Asia Regional Online —— Warmup
http://acm.hdu.edu.cn/showproblem.php?pid=4712 Hamming Distance Time Limit: 6000/3000 MS (Java/Other ...
- hduoj 4706 Children's Day 2013 ACM/ICPC Asia Regional Online —— Warmup
http://acm.hdu.edu.cn/showproblem.php?pid=4706 Children's Day Time Limit: 2000/1000 MS (Java/Others) ...
随机推荐
- Android相关 博客收藏
#1 Android 网络编程 参考博客 :http://blog.csdn.net/kieven2008/article/details/8210737 #2 Could not find com. ...
- AR 前言
LBS 基于位置的服务,是指通过电信移动运营商的无线电通讯网络或外部定位方式,获取移动终端用户的位置信息,在GIS平台的支持下,为用户提供相应服务的一种增值业务. 它包括两层含义:首先是确定移动设备或 ...
- 计蒜客31452 Supreme Number(找规律)
A prime number (or a prime) is a natural number greater than 11 that cannot be formed by multiplying ...
- Squid作代理服务器,用户密码验证,高匿代理
参考URL: https://www.cnblogs.com/vijayfly/p/5800038.html https://www.cnblogs.com/operaculus/p/5705184. ...
- 安装和强行卸载fuse
先卸载 yum list fuse yum --setopt=tsflags=noscripts remove fuse.x86_64 安装 yum install automake gcc-c++ ...
- php BCMath高精度计算
Php: BCMath bc是Binary Calculator的缩写.bc*函数的参数都是操作数加上一个可选的 [int scale],比如string bcadd(string right_ ...
- C语言之指针变量
菜单导航 1.指针变量 2.指针和数组 3.常量指针和指向常量的指针 4.指针和字符串的关系 5.数组越界造成的访问不属于自己的内存空间现象 6.引用数据类型和基本数据类型,形参和实参 7.字符串和字 ...
- 【Android】Android 代码判断是否获取ROOT权限(二)
[Android]Android 代码判断是否获取ROOT权限 方法比较简单,直接粘贴代码 /** * 判断当前手机是否有ROOT权限 * @return */ public boolean isRo ...
- 【转】 诡异的ORA-02289: sequence does not exist
原文地址:http://blog.itpub.net/20801486/viewspace-695651/ 今天被开发人员告知在应用用户下无法查询自己创建的sequence的nextval值.当执行s ...
- Flink--3种分区方式
partitionByHash //TODO partitionByHash val data = new mutable.MutableList[(Int, Long, String)] data. ...