POJ1958-Strange Towers of Hanoi【递推】

正题

题目链接:http://poj.org/problem?id=1958


大意

有4根柱子的汉诺塔,有n个盘,求移动次数


解题思路

首先我们定义只有三根柱子时有n个盘的话移动次数是dndn,然后dn=dn12+1dn=dn−1∗2+1
定义有四根柱子时有n个盘移动次数为fnfn
之后我们看四根柱子
这里写图片描述
我们可以将这个塔任意分割成两部分,上面有k个,一个有n个
这里写图片描述
之后我们开始移动上面的
这里写图片描述
次数fkfk
然后我们移动下面的到第4个柱子
这里写图片描述
这时无论如何也不可以到达第3根柱子于是我们可以看作只有3个盘,于是次数dnkdn−k
最后我们在将小盘移过去
这里写图片描述
这时消耗fkfk
于是总代价为fk2+dnkfk∗2+dn−k
之后我们枚举kk<script type="math/tex" id="MathJax-Element-686">k</script>取最优的答案就好了。


代码

#include<cstdio>
#include<algorithm>
using namespace std;
int n=12,d[13],f[13];
int main()
{for (int i=1;i<=n;i++) d[i]=d[i-1]*2+1;//初始化f[1]=1;printf("1\n");for (int i=2;i<=n;i++){f[i]=2147483647;for (int j=1;j<i;j++)f[i]=min(f[i],f[j]*2+d[i-j]);//递推求最优解printf("%d\n",f[i]);//输出}
}

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

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

相关文章

[上海站] 微软Azure AspNetCore微服务实战

活动介绍 2017官方发布了EshopOnContainers的微服务项目&#xff0c;其结合了.Net Core、Azure、Docker等众多优秀的技术&#xff0c;为开发者们抛砖引玉&#xff0c;走进微服务的大门。 本次分享&#xff0c;我们将结合实际毫无保留的从代码上解析微服务架构&#xff0c;以实…

一个朋友的一天,太酸了!

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。”6:00&#xff0c;起床&#xff0c;洗漱。6:45&#xff0c;戴上耳机&#xff0c;打开XX读书&#xff0c;边听边骑车&#xff0c;去上班&#xff0c;由于是新车跑新路&#xff0c;想怎么…

汇编语言(十九)之删除数组中的元素

在数组中删除所有-1元素&#xff0c;然后输出删除后的长度 程序运行&#xff1a; 代码&#xff1a; datas segmentLink dw 15 ,1,2,3,4,5,6,-9,-1,3,4,5,3,-1,-2,3ouput db Link length:$ datas endsstacks segment stackdb 100h dup(?)stacks endscodes segmentassume cs…

vijos1197-费解的开关【递推,枚举,位运算】

正题 题目链接&#xff1a;https://vijos.org/p/1197 大意 有5*5个开关&#xff0c;每次选择一个地方时它和它上下左右的开关都会取反&#xff0c;求将所有开关都变成1的最少次数。 解题思路 首先我们知道一个位置一定不会点击超过一次。这样我们就可以得出一条性质&#xf…

Linux+.NetCore+Nginx搭建集群

本篇和大家分享的是LinuxNetCoreNginx搭建负载集群&#xff0c;对于netcore2.0发布后&#xff0c;我一直在看官网的文档并学习&#xff0c;关注有哪些新增的东西&#xff0c;我&#xff0c;一个从1.0到2.0的跟随者这里只总结一句话&#xff1a;2.0版本&#xff0c;api更多&…

老师 累了,我们 泪了!

“以下文章来自一位不愿意透露姓名的同学所写&#xff1a;”呀呼 “老穆头” 没错是我们的穆老师悄悄往我们班探了探头瞧了瞧我们&#xff0c; 我们依旧对他那么热情&#xff0c;紧随其后老佟往门口一站 教室里立马严肃起来 她是我们级部出了名没人敢惹的老佟&#xff08;佟老…

汇编语言(二十)之分类统计字符个数

输入一串字符串&#xff0c;分别统计英文字符&#xff0c;数字字符和其他字符的个数 程序运行&#xff1a; 代码&#xff1a; datas segmentline_max_length db 0ffhline db 0, 100h dup(?)letter_count dw 0digit_count dw 0other_count …

POJ3263-Tallest Cow【前缀和】

正题 大意 有n头牛&#xff0c;两头牛可以相互看见仅当他们中间没有比他们高的牛&#xff0c;现在已经知道最高的牛是第p头&#xff0c;高度为h。还知道m对关系表示两头牛之间可以相互看见&#xff0c;求每头牛最高高度。 解题思路 我们先无视最高的一头牛&#xff0c;我们假…

.NET Core+Selenium+Github+Travis CI =amp;gt; SiteHistory

前言 总是三分钟热度的我折腾了一个可以每天自动截取指定网站页面并保存到Github的项目SiteHistory&#xff0c;感觉挺好(每次都这样 frameborder"0" scrolling"no" style"border-width: initial; border-style: none; width: 25px; height: 26px;&qu…

汇编语言(二十一)之数值交换与自增

输入两个数&#xff0c;如果第一个数为偶数第二个数为奇数&#xff0c;互换位置&#xff1b;如果两个数都是奇数&#xff0c;则两个数都加一 程序运行&#xff1a; 代码&#xff1a; datas segmentA dw 0 B dw 0a_string db 0ffh, 0 ,100h dup(?)b_string …

2021 程序媛跳槽记:学习计划篇(已收获字节等offer)

今天推荐的这篇文章是一位互联网程序媛写的跳槽日记。她本硕毕业于985计算机专业&#xff0c;先后就职于央企和BAT。这一篇就是她跳槽到互联网的学习笔记&#xff0c;希望能对大家有所帮助&#xff0c;感兴趣的读者也可以关注公众号&#xff0c;听听更多程序媛的故事~ 坦白说&a…

二分二题-P1678,P3902【二分,LIS】

T1:P1678 烦恼的高考志愿 评测记录:https://www.luogu.org/record/show?rid9644174 大意 有m个分数线&#xff0c;有n个估分&#xff0c;给每个估分找一个最接近的分数线&#xff0c;输出每个估分和它最接近的分数线的差之和。 解题思路 我们先将分数排序 我们可以找到一个…

Orleans的集群构建

听闻一周前,微软公布了.net core2.0,以及各种各样的其他core2.0.大家都很兴奋.微妈的诚意真是满满的.这次开源势头让我感觉到了微妈的技术实力之雄厚.我在这里祝福C#越来越好.细心的人似乎发现Orleans在github中是和net core分在一起的.Orleans的2.0何时发布呀… 现在我们面对…

汇编语言(二十二)之统计减去奇数的个数

输入一个正数&#xff0c;该数减去递增奇数&#xff08;从1开始&#xff09;直至小于等于零为止&#xff0c;计算该数减去奇数的个数 程序运行&#xff1a; 代码&#xff1a; datas segmentNUM dw 17ANS dw 0NUM_string db 0ffh, 0 ,100 dup(?)inputNUM …

卸载抖音和微博的一天……

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。”抖音&#xff0c;这个APP也不知道出来多久了&#xff0c;但是印象中出来的时间不久&#xff1b;微博&#xff0c; 出来的时间要比抖音早很多&#xff0c; 记得我的第一篇微博是在2012年…

二分答案二题-P1182数列分段II,P1873砍树

T1:P1182T1:P1182数列分段SectionIISectionII评测记录&#xff1a;https://www.luogu.org/recordnew/lists?uid52918&pidP1182 大意 有n个数&#xff0c;要求分成m段使每段的和之中的最大值最小。 解题思路 二分最大值&#xff0c;然后枚举过去看至少分成几段。然后利用…

.NET Core 在程序集中集成Razor视图

前言 有时候&#xff0c;我们在开发一个程序集供其他项目引用的时候&#xff0c;可能需要对外输出一些HTML的结构数据。 还有一些情况我们可能开发的是一个中间件&#xff0c;这个中间件需要提供一些界面来对外展示数据或者是内部的一些程序的运行信息&#xff0c;这个时候我…

开学一月,可以自己玩自己做的游戏了!!!

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。”《趣味小游戏》的书已经讲完了&#xff0c;国庆假期给同学们布置了小游戏项目的任务&#xff0c;开学时检查了下&#xff0c;大部分做的还是挺不错的。有的同学超常发挥想象&#xff0…

汇编语言(二十三)之求一个数的补数

给定一个数&#xff0c;求该数的补数 程序运行&#xff1a; 代码&#xff1a; datas segmentNUM DB 12H,34H,56H,78H,9AH,0BCH,23H,45HDB 67H,89H,0DEH,13H,24H,35H,46H,57HN DB $-NUMoutputNUM db "orignal data NUM$"outputNUMC d…

POJ2018-Best Cow Fences【实数二分答案】

正题 题目链接&#xff1a;http://poj.org/problem?id2018 大意 有n个数&#xff0c;一段长度不小于L的子段&#xff0c;使他们的平均值最大。 解题思路 二分答案&#xff0c;然后一遍暴力用最大子段和的方法求出是否可以。 code #include<cstdio> #include<algo…