题目
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2511
题目来源:给新生的寒假训练1
简要题意:中文不表
题解
汉诺塔问题简介,了解的可以略去此部分
不妨假设要解决规模为n的汉诺塔问题,从from柱子以mid为中介放到to
有函数solve(int n, int from, int to, int mid)
于是我们可以先把1~n-1的碟子放到mid上:solve(n-1, from, mid, to);
然后我们把最下面的碟子放到to上
然后再把1~n-1从mid放到to上:solve(n-1, mid, to, from);
于是我们可以利用解决更小规模的相同问题来解决的这个问题,也就是递归。
只要将普通的汉诺塔稍加改造就能解决这个问题,只是要左右区间然后逼近结果。
汉诺塔问题分为三个阶段,可以比较容易看出,第一三阶段 lrcnt=