UVa 101 The Blocks Problem 数据结构课题

UVa 101 The Blocks Problem 数据结构专题

UVa  101  The Blocks Problem 数据结构课题 101 - The Blocks Problem 67864
19.16%
14194
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=103&page=show_problem&problem=37


题意: 有N个位置, 编号为 0~N-1, 初始下,各个位置上放置这和位置编号相同的砖块,即砖块1,砖块2……砖块N-1。 然后有四种命令操作方式:

1.move a onto b :把砖a移动到砖b上面,如果a和b上面都有砖块,要先把它们放回原来位置。

2.move a over b: 把a移动到有b的“砖堆”上面,移动前需要把a上面的砖块都恢复到原位置,b的堆保持不变。

3.pile a onto b:把a之上的(包括a)搬到b之上,要先把b上面的砖放回到原来位置

4.pile a over b: 直接把a之上的(包括a)搬到b所在的“砖堆”上。

5.quit: 结束命令。


解体思路: 初刚看到时,想用stack模拟,但是这样操作会比较多,可能会TLE。 于是自己模拟写了类似栈的类,但是可以随机存储。 STL确实用起来比较方便,但是很不灵活。