木块问题 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)

uvaoj 101 - The Blocks Problem(vector应用+技巧)

ACM题目————The Blocks Problem

EOJ 1501 The Blocks Problem

uva 101 - The Blocks Problem

UVa 101 - The Blocks Problem STL