题解报告:hdu1995汉诺塔V

Posted 霜雪千年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了题解报告:hdu1995汉诺塔V相关的知识,希望对你有一定的参考价值。

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1995

解题思路:求第k号盘子至少需要移动的次数,实际上是求n-k(认作是前g-1个盘子移动的总次数)个盘子(还欠一个)至少需要移动的次数再加上第(n-k+1)(认作是第g个盘子)个盘子移动一次即为移动的总次数

AC代码:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 typedef long long LL;
 4 int main()
 5 {
 6     int T,N,k;
 7     LL a[61]={0};
 8     a[1]=1;
 9     for(int i=2;i<61;i++)//先打表
10         a[i]=2*a[i-1]+1;//汉诺塔递推规律
11     while(cin>>T){
12         while(T--){
13             cin>>N>>k;
14             cout<<a[N-k]+1<<endl;
15         }
16     }
17     return 0;
18 }

 

以上是关于题解报告:hdu1995汉诺塔V的主要内容,如果未能解决你的问题,请参考以下文章

HDU 1995 汉诺塔V

HDU 1995 汉诺塔V

题解报告:hdu1996汉诺塔VI

杭电oj1995——汉诺塔V(java实现)

HDOJ(HDU)1996汉诺塔VIJava题解

hdu 汉诺塔