RE求助

P4285 [SHOI2008] 汉诺塔

思路: 对于每一个 $n$ 个盘的Hanoi塔可以将看第 $n$ 个盘和前面 $n-1$ 个盘看做两个整体。 先可以对于题目描述的优先级算出 $n=2$ 时 $1$ 盘和 $2$ 盘分别需要移动的次数 $S_1$ $S_2$。 接下来对于每一个 $n$ 个盘的Hanoi塔可以将看第 $n$ 个盘和前面 $n-1$ 个盘看做两个整体$H_1$ 和 $H_2$。 把 $H_1$ 和 $H_2$ 分别看作 $1$ 盘和 $2$ 盘。那么$H_1$就需要移动 $S_2$ 次,$H_2$ 就要移动 $n-1$个移动次数乘上$S_1$。 所以我们可以得出状态转移方程: ```f[n]=S2+S1*[n-1]``` 计算 $S_1$ $S_2$的值了。我们用三个栈来模拟即可。
by Rn_Lamsuly @ 2020-11-06 22:28:05


|