【DP】奇怪汉诺塔(ybtoj DP-1-2)
奇怪汉诺塔
ybtoj DP-1-2
题目大意
求四根柱子的汉诺塔问题
输出
共12行
每行输出第一根柱子有i个圆盘的最小步数
解题思路
设aia_iai表示三根柱子,第一根柱子有i个圆盘的步数
很显然是先移i-1个到第二根,再移最大的到第三根,再把i-1个移过去
ai=2×ai−1+1a_i=2\times a_{i-1}+1ai=2×ai−1+1
现在再考虑四根柱子的
可以先把其中若干移到第二根,然后把剩下的移到第四根,最后把第二根的移过去
fi=minj=0i−1{2×fj+ai−j}f_i=\min_{j=0}^{i-1}\begin{Bmatrix}2 \times f_j + a_{i-j}\end{Bmatrix}fi=j=0mini−1{2×fj+ai−j}
代码
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define ll long long
using namespace std;
int a[100], f[100];
int main()
{memset(f, 127/3, sizeof(f));a[1] = 1;f[1] = 1;printf("1\n");for (int i = 2; i <= 12; ++i){a[i] = a[i - 1] * 2 + 1;for (int j = 0; j < i; ++j)f[i] = min(f[i], f[j] * 2 + a[i - j]);//递推printf("%d\n", f[i]);}return 0;
}
【DP】奇怪汉诺塔(ybtoj DP-1-2)相关推荐
- 【YBT高效进阶】1基础算法/1逆推算法/2奇怪汉诺塔
[YBT高效进阶]1基础算法/1逆推算法/2奇怪汉诺塔 内存限制:256 MiB 时间限制:1000 ms 标准输入输出 题目类型:传统 评测方式:文本比较 题目描述 汉诺塔问题,条件如下: 这里有 ...
- 牛客 - 汉诺塔(思维+dp)
题目链接:点击查看 题目大意:给出 n 个木板,尺寸分别为 Xi * Yi ,现在要求将其分为最少的组,每一个组中都可以通过重新排序使得每个木板都严格递增,此处递增的意思为严格满足 Xi > X ...
- h0043. 奇怪的汉诺塔
汉诺塔问题,条件如下: 1.这里有A.B.C和D四座塔. 2.这里有n个圆盘,n的数量是恒定的. 3.每个圆盘的尺寸都不相同. 4.所有的圆盘在开始时都堆叠在塔A上,且圆盘尺寸从塔顶到塔底逐渐增大. ...
- 汉诺塔(3塔、4塔思路详记)
时隔多年,忽然又回来了. 记录一个小小的汉诺塔2333 没想到3年过去,我写递推还要看题解才能想明白/(ㄒoㄒ)/~~ #include<iostream> #include<cst ...
- $bzoj1019-SHOI2008$ 汉诺塔 $dp$
题面描述 汉诺塔由三根柱子(分别用\(A\ B\ C\)表示)和\(n\)个大小互不相同的空心盘子组成.一开始\(n\)个盘子都摞在柱子\(A\)上,大的在下面,小的在上面,形成了一个塔状的锥形体. ...
- BZOJ 1019: [SHOI2008]汉诺塔( dp )
dp(x, y)表示第x根柱子上y个盘子移开后到哪根柱子以及花费步数..然后根据汉诺塔原理去转移... ------------------------------------------------ ...
- 奇怪的汉诺塔 Four Column Hanoi Tower
奇怪的汉诺塔 题面 传送门 思路 首先考虑三个柱子的汉诺塔: 假设当前有 n n n个盘子: 先把前n-1个盘子从A柱移到B柱,然后把A柱上剩的那一个盘子移动到C柱最后把B柱上的那n-1个盘子移动到C ...
- 《算法竞赛进阶指南》打卡-基本算法-AcWing 96. 奇怪的汉诺塔:递推
文章目录 题目解答 题目链接 题目解答 来源:acwing 分析: 本题的汉诺塔问题是n个盘子4个塔,最基本的汉诺塔是n个盘子3个塔.本题是要在后者的基础上来做. 设d[i]表示i盘3塔问题的最小移动 ...
- 96. 奇怪的汉诺塔【递推】
这是一道很经典的问题. 先看3个塔的情况 需要注意的是,这里的汉诺塔移动并无只可以移动到相邻塔的需求.即可以直接从A移到C. 设d[i]表示将i个盘子从这里移到其他除它之外塔的步数 ,总塔的数量为3 ...
最新文章
- java创建描述文件,IT技术交流:Java 轻量级整合开发
- 数据结构习题精解 C语言实现+微课视频(习题解答、研考试题、微课视频)
- QFile和C语言对文件操作的性能比较.--读取double型二进制数据文件
- webmin mysql_MySQL+Webmin轻松创建数据库
- Salesforce新增Einstein AI支撑的自动化功能
- Typora免费版,不是破解版,是没有升级的老版本,用的还是比较舒服的
- 多功能智慧路灯杆商业模式解决方案
- Mac中安装Windows虚拟机给小米手机刷Root
- IBM服务器微软集群安装
- nu.xom:Attribute
- linux添加mx记录,linux下nslookup操作实例,查找域名的a记录、mx记录、cname记录、ns记录...
- java-net-php-python-java西藏文库计算机毕业设计程序
- 头歌 CC++基本输入输出
- 高分辨率对地观测系统重大科技专项简介
- 如何通过名字判断一个印度人的种姓
- 关于系统中的流水帐号
- python进行XYZ-NEU-BLH坐标转换
- ValidateUtil 验证工具类
- 联想计算机boss设置,联想电脑如何进行bios设置 联想电脑bios设置教程
- oracletns中不存在名称为_科比不会为黄蜂打球,你觉得科比能去骑士,不存在的...
热门文章
- java流的序列化_Java中的对象流和序列化介绍
- 索尼android 怎么截屏快捷键,索尼XZ Premium怎么截屏 2种索尼XZ Premium截图方法
- 禁用笔记本键盘_如何禁用/启用笔记本内置键盘?
- 解决异步问题,教你如何写出优雅的promise和async/await,告别callback回调地狱!
- 十一届蓝桥杯国赛 玩具蛇-dfs
- The Water Bowls POJ - 3185(开关问题+暴力)
- __syncthreads()
- Eclipse调试方法
- GuGuFishtion(2018 Multi-University Training Contest 7)
- XXI Open Cup. Grand Prix of Korea I. Query On A Tree 17 树剖 + 二分 + 树带权重心