木块问题 The Blocks Problem, UVa 101
Posted 淇洹
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了木块问题 The Blocks Problem, UVa 101相关的知识,希望对你有一定的参考价值。
题目
从左到右有n个木块,编号为0~n-1的木块,要求模拟以下4种操作(下面的a和b都是木块编号):
1、move a onto b:把木块a、b上的木块放回各自的原位,再把a放到b上;
2、move a over b:把a上的木块放回各自的原位,再把a发到含b的堆上;
3、pile a onto b:把b上的木块放回各自的原位,再把a连同a上的木块移到b上;
4、pile a over b:把a连同a上木块移到含b的堆上。
当输入quit时,结束操作并输出0~n-1的位置上的木块列表,按照从底部到顶部的顺序排列。(a和b在同一堆的指令是非法指令,应当忽略)
分析
每个木块的高度不确定,所以用vector来保存很合适;而木块堆的个数不超过n,所以用一个数组来存就可以了。
Sample Input / 输入样例
10
move 9 onto 1
move 8 over 1
move 7 over 1
move 6 over 1
pile 8 over 6
pile 8 over 5
move 2 over 1
move 4 over 9
quit
Sample Output / 输出样例
0: 0
1: 1 9 2 4
2:
3: 3
4:
5: 5 8 7 6
6:
7:
8:
9:
以上是关于木块问题 The Blocks Problem, UVa 101的主要内容,如果未能解决你的问题,请参考以下文章
E - The Blocks Problem ( UVA - 101)