HDU-2061 汉诺塔III (简单DP)

2023-11-03

约19世纪末,在欧州的商店中出售一种智力玩具,在一块铜板上有三根杆,最左边的杆上自上而下、由小到大顺序串着由64个圆盘构成的塔。目的是将最左边杆上的盘全部移到右边的杆上,条件是一次只能移动一个盘,且不允许大盘放在小盘的上面。
现在我们改变游戏的玩法,不允许直接从最左(右)边移到最右(左)边(每次移动一定是移到中间杆或从中间移出),也不允许大盘放到下盘的上面。
Daisy已经做过原来的汉诺塔问题和汉诺塔II,但碰到这个问题时,她想了很久都不能解决,现在请你帮助她。现在有N个圆盘,她至少多少次移动才能把这些圆盘从最左边移到最右边?
Input
包含多组数据,每次输入一个N值(1<=N=35)。
Output
对于每组数据,输出移动最小的次数。
Sample Input
1
3
12
Sample Output
2
26
531440
题中改变了原有的汉诺塔规则,而是 每次必须经过中间的柱子,尽管有些许变化但是推到过程是一样的(现设有A,B,C三个柱子,以及标号为1-N的盘子),既然不能将编号为N的盘子移动到C上,那么就必须先移动N到B上,这样的话就先有N- 1个盘子在C上这个状态,然后在移动N到C上之前又要把N-1个盘子移动到A上,要达到最终目的的话,就要再把N-1个盘子移动到C上。
递推式 :dp[i] =3*dp[i-1] + 2;

#include<stdio.h>
 long long int dp[55];
int main()
{
	long long int i,n,m,a,b;
	dp[0] = 0;
    dp[1] = 2;
    for(i = 2; i <= 55; i++)
	{
        dp[i] =3*dp[i-1] + 2;
    }
	while(scanf("%lld",&n)!=EOF)
	{
		
			printf("%lld\n",dp[n]); 

	}
	
	return 0;
 } 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HDU-2061 汉诺塔III (简单DP) 的相关文章

  • [NOIP]2004

    题目 链接 https ac nowcoder com acm contest 19859 P 题意 输入 3 10001011 输出 IBFBBBFIBFIIIFF 解析 题目所求 类似于建线段树 完全二叉树 叶子节点有2 n个 如果是叶

随机推荐

  • JAVA:List复制

    ArrayList的复制方法有几种 我们这边分别列出来 并且判断了更改复制的List会不会对原List有影响 初始List ArrayList
  • 测试及时通讯工具

    来自 51Testing软件测试论坛 测试像QQ那样的及时通讯工具 应该如何测试 参考答案 1 首先以核心功能为中心进行测试工作的部署 比如 关键功能或核心功能 收发等等 因为有可能联动一些其他辅助功能 事先进行规划部署 2 综合利用场景分
  • Java中的装包(装箱)和拆包(装包)

    装箱和拆箱 在Java的学习中 我们有的时候会设计装箱和拆箱的概念 也就是常说的装包和拆包 这篇博客将详细讲解一下装箱和拆箱的概念及其用途 装箱 装包 将基本数据类型转换成包装类类型 拆箱 拆包 将包装类类型转换成基本数据类型 装箱 注意
  • 2023年应届生招聘和薪酬管理

    导读 2023年高校毕业生春季招聘正在如火如荼开展 校招选拔 应届生起薪等话题成为企业近期关注的焦点 随着校招需求增加 企业表示招聘难度也有所加大 尤其是热门岗位 紧缺专业和优质生源的应届生 如何制定有吸引力的校招策略和有竞争力的应届生起薪
  • 博客地址 linlin.fun

    暂时不用csdn了 网络太慢了 csdn博客内容已经抓取到linlin fun
  • 基于springboot微服务项目的父工程、common模块的构建

    概述 以微服务项目的方式 对软件体系进行一个简单的探究 简略说明 为什么这样做 软件中这样做的原因是什么 结合一定的案例给出 父工程 对于父工程模块中重要的是其中的pom文件 在微服务体系下 不能够过多 比如在子模块中会自己引入的 就不要在
  • 最长滑雪道-蓝桥杯练习-python实现

    最长滑雪道 问题描述 小袁非常喜欢滑雪 因为滑雪很刺激 为了获得速度 滑的区域必须向下倾斜 而且当你滑到坡底 你不得不再次走上坡或者等待升降机来载你 小袁想知道在某个区域中最长的一个滑坡 区域由一个二维数组给出 数组的每个数字代表点的高度
  • FileZilla Server超详细配置

    FileZilla Server超详细配置 FileZilla Server下载安装完成后 必须启动软件进行设置 由于此软件是英文 本来就是一款陌生的软件 再加上英文 注 本站提供中文版本 请点击下载 配置难度可想而知 站长从网上找到一篇非
  • mac m2 编译dubbo3.1.x版本报Missing:com.google.protobuf:protoc:exe:osx-aarch_64

    原因是低版本的protobuf和grpc不支持MacBook m1或m2 protobuf 需要使用x86的protobuf 解决方法 1 单独修改configuration
  • JavaScript中数组去重的5种方法是什么

    数组去重的5种方法 1 用 new Set arr 语句去重 2 用 Array from new Set arr 语句去重 3 利用indexOf 去重 4 利用includes 去重 5 利用filter 去重 数组去重的方法 1 ne
  • vue this.$emit(‘close‘)

    父页面
  • 【matlab-in-vscode配置流程】在vscode上的逐块编译matlab

    读了 https zhuanlan zhihu com p 616873284 这篇文章 看起来好像很厉害的样子 于是想部署一下matlab in vscode这个插件 遇到了一些坑 于是记录 安装插件 直接在vscode搜索maltab
  • Java 解压压缩文件,springMVC 接收压缩文件

    解压 zip rar 类型的压缩文件 1 首先需要 jar 包 ant 1 6 5 jar 解压zip格式的压缩文件 junrar 0 7 jar 解压rar 格式 如果是 maven
  • Spring Beans 详解

    目录 1 如何命名 Beans 2 如何实例化 Beans 3 确定 Bean 的运行时类型 Spring IoC 容器用来管理一个或多个 bean 这些 bean 通过用户提供的配置文件创建 例如 xml 格式的
  • 论文写作课程收获总结

    1 学术论文的作用 达到毕业条件 评职称 知识的传承和学术的宣传 2 小白写论文的初期步骤 读文献 总结模板 最后在自己的模板上写 当然也可以用别人的模板写 3 写论文得趁早 因为论文发表周期真的很长 ps 徐媛媛老师有一篇论文好像就经历了
  • Maven如何导入jar包

    一 通过修改pom xml文件添加依赖关系 1 到http maven aliyun com nexus welcome上搜索相应的包 复制文本内容 2 打开项目中的pom xml文件 图中2处需先添加
  • ElasticSearch第十五讲 ES数据写入过程和写入原理以及数据如何保证一致性

    Es的数据并发冲突 ES 数据并发冲突控制是基于的乐观锁和版本号的机制 一个document第一次创建的时候 它的 version内部版本号就是1 以后 每次对这个document执行修改或者删除操作 都会对这个 version版本号自动加
  • deepin 远程linux,在Deepin系统下快速安装和配置XRDP远程连接的关键点

    在Deepin系统下安装XRDP非常的简单 只需要在终端中执行sudo apt install xrdp命令即可 配置实现XRDP远程连接也非常的简单 通过以下方法使你快速完成安装和配置XRDP的操作 前言 在系统中安装XRDP后 Deep
  • APK安装后在桌面的图标列表里不显示/显示的方法

    当我们的程序在被安装后再次重启系统时系统会自动创建我们的APK程序 在所有的APK程序都安装完后系统会最后安装Luncher2 apk 应用程序 Luncher2 apk就是我们的系统界面应用程序 它会检测系统已经安装的应用软件的包名 然后
  • HDU-2061 汉诺塔III (简单DP)

    约19世纪末 在欧州的商店中出售一种智力玩具 在一块铜板上有三根杆 最左边的杆上自上而下 由小到大顺序串着由64个圆盘构成的塔 目的是将最左边杆上的盘全部移到右边的杆上 条件是一次只能移动一个盘 且不允许大盘放在小盘的上面 现在我们改变游戏