HDU 1995
来源:互联网 发布:macbookair软件推荐 编辑:程序博客网 时间:2024/05/17 04:07
汉诺塔V
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 4216 Accepted Submission(s): 2550
Problem Description
用1,2,...,n表示n个盘子,称为1号盘,2号盘,...。号数大盘子就大。经典的汉诺塔问
题经常作为一个递归的经典例题存在。可能有人并不知道汉诺塔问题的典故。汉诺塔来源于
印度传说的一个故事,上帝创造世界时作了三根金刚石柱子,在一根柱子上从下往上按大小
顺序摞着64片黄金圆盘。上帝命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱
子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一回只能移动一个圆盘。我们
知道最少需要移动2^64-1次.在移动过程中发现,有的圆盘移动次数多,有的少 。 告之盘
子总数和盘号,计算该盘子的移动次数.
题经常作为一个递归的经典例题存在。可能有人并不知道汉诺塔问题的典故。汉诺塔来源于
印度传说的一个故事,上帝创造世界时作了三根金刚石柱子,在一根柱子上从下往上按大小
顺序摞着64片黄金圆盘。上帝命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱
子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一回只能移动一个圆盘。我们
知道最少需要移动2^64-1次.在移动过程中发现,有的圆盘移动次数多,有的少 。 告之盘
子总数和盘号,计算该盘子的移动次数.
Input
包含多组数据,首先输入T,表示有T组数据.每个数据一行,是盘子的数目N(1<=N<=60)和盘
号k(1<=k<=N)。
号k(1<=k<=N)。
Output
对于每组数据,输出一个数,到达目标时k号盘需要的最少移动数。
Sample Input
260 13 1
Sample Output
5764607523034234884
思路:
自己在纸上画一画很容易就会想到公式。
F(i) = 2^(N-i);
#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <iostream>using namespace std;typedef long long int ll;int main(){int T;scanf("%d",&T);int N,M;while(T--){scanf("%d %d",&N,&M);printf("%I64d\n",(ll)pow(2,N-M));}return 0;}
0 0
- hdu 1995
- HDU 1995
- hdu 1995 汉诺塔V
- hdu 1995 汉诺塔V
- hdu 1995 汉诺塔V
- HDU 1995 汉诺塔V
- hdu 1995 汉诺塔V
- hdu 1995 汉诺塔V
- HDU 1995 汉诺塔V
- HDU 1995 汉诺塔V
- hdu 1995 汉诺塔
- hdu
- hdu
- HDU
- hdu ()
- hdu
- hdu
- HDU
- 2016/8/15-2016/8/26两周开发总结
- 01背包与完全背包结合
- 安卓小日记练习(4)其中一个item的点击事件(1)
- Socket异步服务器,可以监控客户端的状态,功能有,文字测试,服务端向客户端传输屏幕录像(UDP传输)、监控客户端屏幕(UDP传输),抖动用户窗体、发送文件给用户、扫描客户的C盘目录。
- HTML5标签
- HDU 1995
- linux命令大全(一)
- Qt学习之十七:文件I/O
- Hust oj 1929 走三方,路迢迢水长长(递推)
- Xcode8与以往版本创建window的不
- C#对象间的协作和信息交换(三)从窗体向主窗体传递消息
- HDU5700-区间交
- HTML 全局属性
- Android全球定位系统GPS距离计算-Oak先生