题目名称 578. 汉诺塔
输入输出 ionah.in/out
难度等级 ★★
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 10
题目来源 Gravatarcqw 于2011-07-28加入
开放分组 全部用户
提交状态
分类标签
分享题解
通过:4, 提交:19, 通过率:21.05%
Gravatarecho 100 0.015 s 0.18 MiB Pascal
Gravatarrewine 100 0.080 s 1.01 MiB C++
GravatarPurpleShadow 100 0.539 s 5.20 MiB C++
GravatarTruth.Cirno 100 0.867 s 29.71 MiB C++
GravatarPurpleShadow 90 0.584 s 5.20 MiB C++
Gravatarecho 40 0.055 s 0.12 MiB Pascal
GravatarTruth.Cirno 20 0.004 s 0.29 MiB C++
GravatarMakazeu 20 0.004 s 0.32 MiB C++
Gravatarrewine 20 0.004 s 0.37 MiB C++
Gravatar梦那边的美好ET 20 0.004 s 0.41 MiB C++
本题关联比赛
20110728
关于 汉诺塔 的近10条评论(全部评论)
分享源码
Gravatarrewine
2017-07-30 19:17 3楼
多柱汉诺塔问题,应该是用动态规划来做,困扰了很久,求分享一份源码参考
Gravatar紫葉
2014-10-17 18:58 2楼
本来就想练无符号高精度整数运算,于是用的高精度加法(bplus)、高精度比较(bcom)、无符号长整型转换高精度(bchange)完成的。
动规最大时间复杂度目测O(n*m^2)
GravatarTruth.Cirno
2012-07-16 16:53 1楼

578. 汉诺塔

★★   输入文件:ionah.in   输出文件:ionah.out   简单对比
时间限制:1 s   内存限制:128 MiB

问题描述:

对于一个有N根柱子的汉诺塔,在第一根柱子上有M个圆盘从大到小依次摆放,问如何用最少的步数把所有的盘子都移动到第N根柱子上。每次只能移动一个圆盘,每个圆盘只能放在比它大的圆盘上,最大的圆盘只能直接放置在地面上。

输入文件:一行,有两个整数N,M

输出文件:一行,最少的步数


样例输入:

4 4

样例输出:


9


数据规模:

3<=N<=30
1<=M<=200


有20%的数据
N<=6
M<=20