UVA 10152 ShellSort
2015-07-27 11:06
330 查看
题目
龟壳排序分析
标题党,与希尔排序无关;
给出两组
龟壳,一组初始序列,一组目标序列。要求对初始序列排序,达到目标序列,排序规则要求一次仅能把某
龟壳移至顶部。依次输出移动的
龟壳的名字。
思路
逆向思考,如何把目标序列滚回初始序列,举一个栗子。Y R S D E M Z F W -> Y D S E M R Z F W
(Y) (R) (S) D E M Z F W -> () D () E M () Z F W
S -> ^ E
R -> ^ Z
Y -> ^ D
也就是说,先用目标序列在初始序列找到相对位置最长的子串(即目标序列两个字符间可以插入非匹配字符),目标序列剩下未匹配的字符即是初始序列需要移动的字符。
代码
#include <cstdio> #include <cstring> int main() { int k, n, i, j; char a[205][85], b[205][85]; scanf("%d\n", &k); while (k--) { scanf("%d\n", &n); for (i = 0; i < n; i++) fgets(a[i], 85, stdin); for (i = 0; i < n; i++) fgets(b[i], 85, stdin); for (i = j = n-1; i >= 0; i--) if (strcmp(b[j], a[i]) == 0) j--; for (; j >= 0; j--) printf("%s", b[j]); printf("\n"); } return 0; }
相关文章推荐
- Linux Shell: 统计系统中占用Swap 的程序PID和占用大小
- MAC-Zsh安装与使用——终极Shell
- vim编辑器及bash基础学习的知识点总结
- Powershell 管道原理分析
- Powershell 管道原理分析
- Microsoft.Windows.TimedPowerShell.DiscoveryProvider
- 一个简单地Shell-like 的实现
- chown
- shell版俄罗斯方块二:界面绘制
- shell版俄罗斯方块二:界面绘制 分类: shell版俄罗斯方块 2015-07-27 09:14 116人阅读 评论(0) 收藏
- shell版俄罗斯方块一:方向键获取
- shell版俄罗斯方块一:方向键获取 分类: shell版俄罗斯方块 2015-07-27 09:00 114人阅读 评论(0) 收藏
- Linux shell命令
- Shell
- nohup-真正的Shell后台运行
- bash 内置wait命令使用方法
- 关于cron和crond,crontab以及bash脚本的写法等知识 cron的语法用法
- shell 入门练习:输入网卡名显示ip
- shell的特殊变量及如何查看当前shell
- SHELL--基本语法