Description

你对经典的hanoi塔问题一定已经很熟悉了。有三根柱子,n个大小不一的圆盘,要求大盘不能压在小盘上,初始时n个圆盘都在第一根柱子上,最少要多少步才能挪到最后一根柱子上?

现在我们来将hanoi塔扩展一下,由三根柱子扩展到四根柱子,其余规则不变。例如,3个圆盘,四根柱子A到D,初始时圆盘都A柱上,我们用五步就可以将圆盘都挪到D柱上:

第一步:将圆盘1从A挪到B;

第二步:将圆盘2从A挪到C;

第三步:将圆盘3从A挪到D;

第四步:将圆盘2从C挪到D;

第五步:将圆盘1从B挪到D。

你的任务是写一个程序求解四柱子hanoi塔问题最少要多少步可以解决。

Input

输入只有一行,为一个正整数n。(1<=n<=1000)

Output

输出为一个正整数,代表n盘四柱子hanoi塔问题最少要多少步可以解决。

Solution

在做经典汉诺塔问题的时候,我们是用递推求出n个盘子时的步数的,我们做这道题的时候也就类比,尝试是否能够递推解决问题

以下是前10个数的表

盘子数 步数
1 1
2 3
3 5
4 9
5 13
6 17
7 25
8 33
9 41
10 49
... ...

观察上面的表格,我们发现,从1个盘子到2个盘子与2个到3个各增加了2步即\(2^{1}\)步;从3个到4个、从4个到5个与从5个到6个各增加了4步即\(2^{2}\)步,以此类推,我们做出猜想

\[f_{i}=f_{i-1}+2^{k}
\]

其中\(k \in N^{*}\)且是递增的

对于\(2^{k}\)会加(k+1)次

数据\(n \leqslant 1000\)所以直接递推就好

#include <cstdio>
#include <algorithm>
#define open(x) freopen(x".in","r",stdin);freopen(x".out","w",stdout);
using namespace std;
int n,cnt,num,i;
long long add,f[1001];
int main()
{
open("hanoi");
scanf("%d",&n);
f[1]=1;f[2]=3;f[3]=5;
add=4;cnt=3;num=3;
for (i=4;i<=n;i++)
{
f[i]=f[i-1]+add;
cnt--;
if (!cnt) cnt=++num,add*=2;
}
printf("%lld",f[n]);
return 0;
}

最新文章

  1. linux 软连接和硬链接
  2. win7下 VirtualBox虚拟机开机后台自启动
  3. bdb log为什么 有 region buffer 和 log cursor buf
  4. 如何在Winform界面中设计图文并茂的界面
  5. python 将字典的键&amp;值从byte类型转换为str类型
  6. java多线程之从任务中获取返回值
  7. Android PNG渐变背景图片失真问题 getWindow().setFormat(PixelFormat.RGBA_8888);
  8. fpga之显示字符串
  9. 第五十六节,python实现支持并发、断点续传的Ftp程序
  10. hibernate缓存机制(二级缓存)
  11. Codeforces Round #441 (Div. 2, by Moscow Team Olympiad) C. Classroom Watch
  12. 【转廖大神】package.json 包安装
  13. composer 镜像地址
  14. Linux Curl命令
  15. bozoj3131: [Sdoi2013]淘金 数位dp
  16. Ubuntu16.10下mysql5.7的安装及远程访问配置
  17. iOS-获取当前View所在的控制器
  18. 在服务器搭建Jupyter notebook
  19. Asp.net FileUpload+Image制作头像效果
  20. easyui-dialog打开多次数据串台问题

热门文章

  1. k8s使用需认证的私服仓库
  2. C#LeetCode刷题之#590-N叉树的后序遍历(N-ary Tree Postorder Traversal)
  3. C#算法设计查找篇之02-二分查找
  4. 01 树莓派4B—C语言编程——GPIO
  5. 清晰详细、可测量、可达到、目标导向、有时间限定,SMART目标定制原则
  6. Goland 生成可执行文件
  7. 金题大战Vol.0 C、树上的等差数列
  8. JavaScript学习系列博客_34_JavaScript RegExp对象
  9. ucore lab2
  10. mysql中的函数总结