谜题 (Puzzle,ACM/ICPC World Finals 1993,UVa227)
题目描述:算法竞赛入门经典习题3-5
题目思路:模拟题
#include <stdio.h> #include <string.h> #define maxn 55 char gird[maxn][maxn] ; char cmd[maxn] ; int blank_x,blank_y ; int main(int argc, char *argv[]) {int flag = 1;for(int i=0;i<5;i++)gets(gird[i]) ;for(int i=0;i<5;i++)for(int j=0;j<5;j++)if(gird[i][j]==' '){blank_x = i;blank_y = j;}while(gets(cmd)){int len = strlen(cmd) ;for(int i=0;i<len;i++){if(cmd[len-1] == '0' || cmd[i] == 'A' || cmd[i] == 'R' || cmd[i] == 'B' || cmd[i] == 'L' ){if(cmd[i] == 'A' && blank_x != 0){gird[blank_x][blank_y] = gird[blank_x-1][blank_y];gird[--blank_x][blank_y] = ' ';}if(cmd[i] == 'R' && blank_y != 4){gird[blank_x][blank_y] = gird[blank_x][blank_y+1];gird[blank_x][++blank_y] = ' ';}if(cmd[i] == 'B' && blank_x != 4){gird[blank_x][blank_y] = gird[blank_x+1][ blank_y];gird[++blank_x][ blank_y] = ' ';}if(cmd[i] == 'L' && blank_y != 0){gird[blank_x][blank_y] = gird[blank_x][ blank_y-1];gird[blank_x][--blank_y] = ' ';}}else flag = 0;}if(flag){for(int i = 0; i < 5; i++){printf("%c %c %c %c %c\n", gird[i][0], gird[i][1], gird[i][2], gird[i][3], gird[i][4]);}}elseprintf("This puzzle has no final configuration.\n");}return 0; }
转载于:https://www.cnblogs.com/secoding/p/9484798.html
谜题 (Puzzle,ACM/ICPC World Finals 1993,UVa227)相关推荐
- ACM - ICPC World Finals 2013 A Self-Assembly
原题下载 : http://icpc.baylor.edu/download/worldfinals/problems/icpc2013.pdf 这道题其实是2013年我AC的第一道题,非常的开心,这 ...
- 《算法竞赛入门经典》 例题 4-4 信息编码 (Message Decoding,ACM,ICPC World Finals 1991,UVa 213)
原题及翻译 Some message encoding schemes require that an encoded message be sent in two parts. 某些消息编码方案要求 ...
- 《算法竞赛入门经典》习题4-2 正方形 (Squares,ACM,ICPC World Finals 1990,UVa201)——仅提供大体方法
原题及翻译 A children's board game consists of a square array of dots that contains lines connecting some ...
- 习题3-6 纵横字谜的答案(Crossword Answers, ACM/ICPC World Finals 1994, UVa232)
原题vjudge 输入一个r行c列(1≤r,c≤10)的网格,黑格用"*"表示,每个白格都填有一个字母. 如 果一个白格的左边相邻位置或者上边相邻位置没有白格(可能是黑格,也可能出 ...
- 数数正方形(ACM/ICPC World Finals)
题目:有n行n列(2<=n<=9)的小黑点,还有m条线段连接其中的一些黑点,统计这些线段连成了多少个正方形(每种边长分别统计) 行从上到下编号为1~n,列从上到下编号为1~n.边用 H(i ...
- 例题5-10 PGA巡回赛的奖金(PGA Tour Prize Money,ACM/ICPC World Finals 1990 UVa207)
原题链接:https://vjudge.net/problem/UVA-207 分类:耐力 备注:排序和其他细节处理 前言:这是我第二次默写刘老师的代码了,真的崩溃,错一点点细节都不行,对着uDebu ...
- UVa816 例题 6-14 Abbott的复仇 (Abbott's Revenge,ACM/ICPC World Finals 2000)
原题链接: UVa-816 题目大意: 模有一个最多包含9*9个交叉点的迷宫.输入起点.离开起点时的朝向和终点,求一条最短路径.(具体题目参考原题和紫书) 解题思路: 本题是一道用BFS求最短路径的迷 ...
- 习题7-1 消防车(Firetruck,ACM/ICPC World Finals 1991, UVa208)
原题链接:https://vjudge.net/problem/UVA-208 备注:回溯法 分类:DFS 代码如下: #include<cstdio> #include<cstri ...
- 习题7-3 多米诺效应(The Domino Effect, ACM/ICPC World Finals 1991, UVa211)
谜一般的格式换行,为啥格式错报WA额. 这题也是用回溯法解决,只是判断情况稍微复杂些. 本质都是相同的,每次有两种决策,一行一行来处理. 当进行到某一行时,上一行还存在未vis的位置则回溯. #inc ...
最新文章
- Windows 10完美识别3TB硬盘实录
- Android代码实现新建文件夹,并将文件保存到新建的文件夹中
- DCMTK:I2DBmpSource类的测试程序
- NYOJ15-括号匹配(二)-区间DP
- 【最佳解法】剑指 Offer 25. 合并两个排序的链表
- 【转】Mongodb 学习笔记
- 数据结构-堆 Java实现
- Android功耗(16)---自启动管理
- Popush项目团队开发章程
- 华为发布智能数据解决方案FusionData,重定义数据基础设施,释放数据价值
- java从入门到精通一(java开发入门)
- MTK 手机支持3D
- xp系统共享服务器怎么设置权限,xp系统局域网设置权限不让其他人访问的方法...
- 硬件原理图 一键开关机电路
- mysql 伪表_伪表和伪列
- iO逆向 触动精灵网络请求
- 团队任务3每日立会(2018-10-24)
- 服务器虚拟化vmware hyper-v,浅谈Hyper-v与VMware服务器虚拟化比较
- JS验证身份证号地区码及最后一位校验码
- tomcat布置前端项目
热门文章
- uefi启动 多硬盘gtp_传统引导更改为UEFI+GTP
- python降维之时间类型数据的处理_python学习笔记之使用sklearn进行PCA数据降维
- MyBatis缓存分为一级缓存和二级缓存
- Oracle代码大全.从入门到熟练
- Kubernetes的yaml文件中的command使用
- R语言绘制ROC曲线如何画在一个图中
- 生命的力量:萝卜开花
- window.onload,body onload=function(), document.onreadystatechange, httpRequest.onreadystatechang
- 爬虫基于ADSL动态获取ip
- SpringBoot用JdbcTemplates访问Mysql