Problem Description

用1,2,...,n表示n个盘子,称为1号盘,2号盘,...。号数大盘子就大。经典的汉诺塔问题经常作为一个递归的经典例题存在。可能有人并不知道汉诺塔问题的典故。汉诺塔来源于印度传说的一个故事,上帝创造世界时作了三根金刚石柱子,在一根柱子上从下往上按大小顺序摞着64片黄金圆盘。上帝命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一回只能移动一个圆盘。我们知道最少需要移动2^64-1次.在移动过程中发现,有的圆盘移动次数多,有的少 。 告之盘子总数和盘号,计算该盘子的移动次数.

Input

包含多组数据,首先输入T,表示有T组数据.每个数据一行,是盘子的数目N(1<=N<=60)和盘号k(1<=k<=N)。 

Output

对于每组数据,输出一个数,到达目标时k号盘需要的最少移动数。 

Sample Input

2
60 1
3 1

Sample Output

576460752303423488
4

=======================================================

解题思路

本以为是用数组逐个记录移动次数,结果没做出来,查询后发现原来是可以推出公式的。。。假设有10个盘子,那么:
盘号 移动次数 2的...次方
10 1 10-10
9 2 10-9
8 4 10-8
7 8 10-7
因此第n个盘子移动的次数为2的(n-k)次方

=======================================================

代码如下:

# include <stdio.h>
int main (void)
{int m, n, k;long long a;while (scanf("%d\n", &m)!=EOF){while (m--){scanf("%d%d\n", &n, &k);a = pow (2, n-k);printf("%lld\n",a);}}
}

汉诺塔V - ACM解决方法相关推荐

  1. 汉诺塔III 汉诺塔IV 汉诺塔V

    汉诺塔III Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...

  2. 汉诺塔IV,汉诺塔V

    汉诺塔IV Problem Description 还记得汉诺塔III吗?他的规则是这样的:不允许直接从最左(右)边移到最右(左)边(每次移动一定是移到中间杆或从中间移出),也不允许大盘放到小盘的上面 ...

  3. 汉诺塔系列问题: 汉诺塔II、汉诺塔III、汉诺塔IV、汉诺塔V、汉诺塔VI、汉诺塔VII

    汉诺塔II:(hdu1207) /先说汉若塔I(经典汉若塔问题),有三塔,A塔从小到大从上至下放有N个盘子,现在要搬到目标C上, 规则小的必需放在大的上面,每次搬一个,求最小步数.这个问题简单,DP: ...

  4. 汉诺塔问题的解决思路及算法

    关于汉诺塔问题,好多时候当时理解了过段时间可能又会忘,其实这个代码很简单,主要还是分治思想理解不够透彻. 架设3根柱子分别为A.B.C,圆盘数目为n. 1:如果A有一个圆盘,则直接移动至c. 2:如果 ...

  5. 汉诺塔系列问题: 汉诺塔II、汉诺塔III、汉诺塔IV、汉诺塔V、汉诺塔VI

    汉诺塔 汉诺塔II hdu1207: 先说汉若塔I(经典汉若塔问题),有三塔,A塔从小到大从上至下放有N个盘子,现在要搬到目标C上, 规则小的必需放在大的上面,每次搬一个,求最小步数.这个问题简单,D ...

  6. 汉诺塔问题的解决思想

    汉诺塔问题是法国数学家编写的一个古老传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针.印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这 ...

  7. python面向过程实践汉诺塔_递归汉诺塔-和递归汉诺塔相关的内容-阿里云开发者社区...

    多柱汉诺塔最优算法设计探究 多柱汉诺塔最优算法设计探究 引言 汉诺塔算法一直是算法设计科目的最具代表性的研究问题,本文关注于如何设计多柱汉诺塔最优算法的探究.最简单的汉诺塔是三个柱子(A.B.C),因 ...

  8. 杭电 汉诺塔问题总结

    看了一下杭电的各种汉诺塔问题,遇到些奇奇葩葩的小问题,也有很多很好的思想,比如最后一题,来来回回的颠倒很有意思.总结一下: Pro.ID 1207 :http://acm.hdu.edu.cn/sho ...

  9. HDOJ 汉诺塔系列(递推分析)

    汉诺塔V http://acm.hdu.edu.cn/showproblem.php?pid=1995 设当有N个盘子时,第i个盘子从一个柱子移到另一个柱子需要移动的步数为f[n,p],则有:当N=p ...

最新文章

  1. 关于session共享
  2. Linux路由界面设置,nuxt中如何配置页面路由
  3. 在FAANG面试中破解堆算法
  4. 电磁波传播相位是否会变化_电磁波相位关系释疑
  5. 计算机的操作系统的那个好,电脑操作系统哪个最好用?
  6. 在线工具:找到神器,助你轻松应对各种职场难题
  7. 正点原子STM32F103学习笔记(二)
  8. (生物信息学)R语言与统计学入门(四)——Fisher检验
  9. Intel 64/x86_64/x86/IA-32处理器标志寄存器详解(1) - 16位FLAGS(8086/80186/80286)
  10. 【绝对好玩】我编过最好的游戏 o( ̄▽ ̄)d
  11. QT下使用QAxObject打开word文档,文档路径含有空格open出错的解决方法
  12. 标签宽度确定,让文字在标签内平均分布
  13. 安防摄像机网页流媒体服务器EasyNVR无插件直播软件启动打印的IP地址与服务器地址不一致
  14. MySQL数据库操作与查询的综合测试题
  15. 外星人Alienware 17R4基本上可完美黑苹果10.13.6
  16. 为什么要用Handler,怎么用Handler
  17. vue中,scss样式的三种写法——当前页面直接定义、@import引入样式、main.js引入公共样式 deep和important的写法
  18. 大数据存储与备份,迫在眉睫!
  19. 【云和恩墨大讲堂】赴春天第一场约会,深圳等你
  20. 华为交换机:三层交换机实现vlan间通信

热门文章

  1. bootstrap到底是用来做什么的(概念)
  2. JS之 if语句函数 对接事件动作 函数更改css css对接需要换妆的区id或class
  3. Linux学习笔记006-启动流程
  4. 最短网络Agri-Net
  5. 选择排序和冒泡排序以及折半查找
  6. Adroid学习之 从源码角度分析-禁止使用回退按钮方案
  7. 谈谈Hybird3D中的光栅化优化
  8. [windows phone 7 ]查看已安装程序GUID
  9. mysql 主从复制介绍_MySQL 主从复制介绍
  10. java url下载ics_使用Microsoft Graph API处理外部(Internet / .ics)日历URL