汉诺塔V - ACM解决方法

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的...次方
10110-10
9210-9
8410-8
7810-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);}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/382007.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uva 10692——Huge Mods

题目大意&#xff1a;给定第一个数M&#xff0c;后面有n的数&#xff0c;求解a[1]^a[2]^a[3]^…..%m的解 思路&#xff1a;开始的时候并不知道从哪里下手&#xff0c;一开始收到前面某题除4的印象&#xff0c;然后一直对4取余&#xff0c;知道a[1],计算后发现那一套只适用于求解…

笨小熊 -- ACM解决方法

描述 笨小熊的词汇量很小&#xff0c;所以每次做英语选择题的时候都很头疼。但是他找到了一种方法&#xff0c;经试验证明&#xff0c;用这种方法去选择选项的时候选对的几率非常大&#xff01; 这种方法的具体描述如下&#xff1a;假设maxn是单词中出现次数最多的字母的出现…

uva 10710——Chinese Shuffle

题目大意&#xff1a;给定一个数n&#xff0c;然后洗牌n-1次问是否能回到初始状态&#xff0c;能回到则是jimmy—number&#xff0c;否则不是&#xff0c;具体怎么洗的&#xff0c;题中的图已经能够说明的很清楚&#xff0c;在此不再赘述&#xff01;思路&#xff1a;开始设了这…

括号配对问题 -- ACM解决方法

括号配对问题 &#xff08;栈的使用&#xff09;描述 现在&#xff0c;有一行括号序列&#xff0c;请你检查这行括号是否配对。 输入 第一行输入一个数N&#xff08;0<N<100&#xff09;,表示有N组测试数据。后面的N行输入多组输入数据&#xff0c;每组输入数据都是一…

中国剩余定理即孙子定理的五种解法

加深一下理解&#xff0c;找了点纯数学的资料&#xff08;老者善学&#xff0c;尤老骥伏枥&#xff0c;况乎我也&#xff09;&#xff1a;“中国剩余定理”是公元5-6世纪、我国南北朝时期的一部著名算术著作《孙子算经》中的一个“物不知数”的解法问题&#xff1a;今有物不知其…

阶乘因式分解(一) -- ACM解决方案

阶乘因式分解&#xff08;一&#xff09;描述 给定两个数m,n,其中m是一个素数。将n&#xff08;0<n<10000&#xff09;的阶乘分解质因数&#xff0c;求其中有多少个m。 输入 第一行是一个整数s&#xff08;0<s<100)&#xff0c;表示测试数据的组数随后的s行, 每…

uva 11490 ——Just Another Problem

题意&#xff1a;刚开始并没有看懂&#xff0c;耐着性子硬读下去&#xff0c;才勉强弄懂大意&#xff0c;英语也要加强训练啊&#xff01;题目是说你有s行c列士兵&#xff0c;然后带着他们去打仗&#xff0c;为了虚张声势&#xff0c;在士兵的中间缺了两个边长为r的洞&#xff…

uva 11728——Alternate Task

题意&#xff1a;及其无聊的一道题目&#xff0c;以前做STl专题的时候&#xff0c;曾经做过一道求一个数的所有约数之和的题目&#xff0c;该题和那道题刚好相反&#xff0c;是给你一个数的约数之和&#xff0c;问这个数可能是多少&#xff01;题目&#xff1a;还能咋办&#x…

uva 10110——Light, more light

题意&#xff1a;当时还挺绕人&#xff0c;讲的就是一个走廊里有n个灯&#xff0c;一个人&#xff08;疯了&#xff09;来回在走廊里转&#xff0c;走第i 圈的时候将灯数能够整除i的灯号改变一下开关&#xff0c;问最后的时候&#xff08;走n圈的&#xff09;最后一个灯是明还是…

uva 10515——Powers Et Al.

题意&#xff1a;这个题目题中的图片已经给的够清楚了&#xff0c;就算不怎么读题&#xff0c;也能yy大概的意思&#xff0c;况且题目也很短&#xff0c;很容易都出来就是给定 a&#xff0c;b&#xff0c;然后求a^b的个位数&#xff01;思路&#xff1a;开始想到了同余模&#…

查找杀人凶手

某地发生了谋杀案&#xff0c;以下为警方得到的4个嫌疑人的证词&#xff1a; A说: 不是我. B说: 是C. C说: 是D. D说: C在胡说. 已知三个人说的真话&#xff0c;一个人说的假话&#xff0c;请编写一个程序判断谁是凶手.&#xff08;摘自《Linux C编程实战》&#xff09; 代码如…

uva 10622——Perfect P-th Powers

题意&#xff1a;给定一个数n&#xff0c;求最大的一个数k使得nx^k。思路1&#xff1a;正规的做法是把这个素数分解&#xff0c;然后求指数的最大公约数就是所求&#xff08;听说有人取了最小值也能过&#xff0c;数据水吧&#xff01;&#xff09;&#xff0c;素数打表&#x…

6174问题 --ACM解决方法

6174问题 描述 假设你有一个各位数字互不相同的四位数&#xff0c;把所有的数字从大到小排序后得到a,从小到大后得到b,然后用a-b替换原来这个数&#xff0c;并且继续操作。例如&#xff0c;从1234出发&#xff0c;依次可以得4321-12343087、8730-3788352、8532-23586174&#…

关于第三周——回顾与修正

回顾了一下上个周情况&#xff0c;发现自己存在很多问题&#xff0c;比如说懒就是其中一个特别严重的吧&#xff0c;给自己的计划不能够坚持下来&#xff0c;给自己安排的任务也不能按时完成&#xff0c;比如下个周要干什么&#xff0c;明天做那些题&#xff0c;虽然给自己规划…

A+B Problem III -- ACM解决方法

AB Problem III 描述 求AB是否与C相等。输入 T组测试数据。 每组数据中有三个实数 A,B,C(-10000.0<A,B<10000.0,-20000.0<C<20000.0). 数据保证小数点后不超过4位。输出 如果相等则输出Yes 不相等则输出No样例输入 3 -11.1 11.1 0 11 -11.25 -0.25 1 2 4样例输…

uva 10127——ones

题意&#xff1a;就是给定一个数n&#xff0c;然后求一个10进制都是1的数&#xff0c;使其能整除n&#xff0c;求其位数&#xff0c;思路&#xff1a;以前做BFS的时候遇到类似的题目&#xff0c;当时用队列long long 模拟的&#xff0c;这个也是&#xff0c;不过重点的是要不断…

vim的常用命令

vim &#xff08;Linux下的文本编辑器&#xff09; a 在光标后添加文本A 在本行行末添加文本i 在光标前插入文本I 在本行开始插入文本o 在光标下插入新行O 在光标上插入新行dd 删除光标所在行 &#xff08;2dd即删除此下的两行&#xff0c;3dd以此类推&#xff09;p 粘贴u 取消…

uva 10061——How many zero\'s and how many digits ?

题意&#xff1a;这道题开始是卡了很久的&#xff0c;题意是给定一个数n然后让你求B进制下n&#xff01;有多少个零&#xff0c;和有多少位数&#xff0c;咋一看&#xff0c;是高精度&#xff0c;如果数论不是很熟系。思路&#xff1a;开始是直接抛弃高精度的一来是存不下&…

Linux文件与目录管理常用命令

改变文件属性与权限 chgrp [-R] dirname/filename 改变文件所属用户组 -R 递归更改chown [-R] 账号名称:组名 dirname/filename 改变文件所有者chmod 改变文件权限 urwx 文件所有者权限为rwxgrw 所属用户组权限为rw-or others权限为r–ax 所有权限加上x权限(a-x 略) 创建新…

uva 10673 ——Play with Floor and Ceil

题意&#xff1a;给定两个数n和m&#xff0c;对于n/m一个向上取整&#xff0c;一个向下取整&#xff0c;然后得到一个方程即P*floor(n/m&#xff09;q*ceil(n/m)n;求该公式中p和q的值的大小。思路&#xff1a;很明显&#xff0c;扩展的欧几里得方程&#xff0c;直接带入扩展欧几…