- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
买车票 给定起点站和终点站还有 L1,L2,L3,C1,C2,C3,求出要从 起点到终点最少要花多少钱. 怎么办 * 买车票 当前所在的某个车站 这一题的以前状态其实只有3种.即满足3种距离(收费)情况的3个车站.要知道这3个车站可以先做一个预处理.显然这3个车站在满足距离限制的条件下应该越远越好. * 买车票 预处理 很容易想出一个N^2的预处理,但是那样是会超时的.由于尽量要让车站离得远(费用是一样的啊 )因此在每种收费情况下,每个车站的以前状态车站一定是递增的序列.这里是只要O(N)的程序: for j:=1 to 3 do begin k:=en-1; for i:=en downto be do begin while (way[i]-way[k]=l[j])and(k=be) do dec(k); p[i][j]:=k+1; end; end; 数组P[i][j]表示的是I状态的第j种以前状态. * 买车票 动态规划的部分 for i:=be+1 to en do {枚举当前状态} begin cost[i]:=maxlongint; for j:=1 to 3 do {枚举以前状态} begin if (p[i][j]i) and (cost[i] cost[p[i][j]] + c[j]) then cost[i]:=cost[p[i][j]]+c[j]; end; end; * 动规的要诀-状态 有时候当前状态确定后,以前状态就已经确定,则无需枚举. * Tom的烦恼 Tom是一个非常有创业精神的人,由于大学学的是汽车制造专业,所以毕业后他用有限的资金开了一家汽车零件加工厂, 专门为汽车制造商制造零件。由于资金有限,他只能先购买一台加工机器。现在他却遇到了麻烦,多家汽车制造商需要他加 工一些不同零件(由于厂家和零件不同,所以给的加工费也不同),而且不同厂家对于不同零件的加工时间要求不同(有些加工时间要求甚至是冲突的,但开始和结束时间相同不算冲突)。Tom当然希望能把所有的零件都加工完,以得到更多的加工费,但当一些零件的加工时间要求有冲突时,在某个时间内他只能选择某种零件加工(因为他只有一台机器),为了赚得尽量多的加工费,Tom不知如何进行取舍。 * Tom的烦恼 Tom的烦恼 按结束时间排序,枚举结束时间作为当前状态,以前状态就是该结束时间对应的起始时间,这是已经确定的. * 文字游戏 文字游戏(fairfox邀请赛1) 给你一份单词表,和一个句子。求出该句子能有多少中不同的划分方法.例如: 单词是ab cd a b c d 句子是abcd 他共有4种完全划分方案: ab/cd a/b/c/d a/b/cd ab/c/d; 当前状态就是单词在句子中向后靠的位置,以前状态就是确定这个单词位置以后,除掉这个单词长度后的一个位置.状态转移方程是:F[i]:=F[i]+F[i-length(word[j])] IOI中有一题《前缀》也是类似的题目. * 决策中的定量 状态转移方程的构造无疑是动态规划过程中最重要的一步,也是最难的一步.对于大多数的动态规划,寻找状态转移方程有一条十分高效的通道,就是寻找变化中的不变量.定量处理的过程也就是决策实施的过程. * 寻找定量 最佳加法表达式 有一个由1..9组成的数字串.问如果将m个加号插入到这个数字串中.使得所形成的算术表达式的值最小. 或许你不明白我在说什么,那么我们通过题目来说明吧 * 最佳加法表达式 这一题中的定量是什么呢?因为是添入加号,那么添完加号后,表达式的最后一定是个数字串,这就是定量.从这里入手,不难发现可以把以前状态认为是在前i个字符中插入k-1个加号(这里的i是当作决策在枚举),然后i+1到最后一位一定是整个没有被分割的数字串,第k个加号就添在i与i+1个数字之间.这样就构造出了整个数字串的最优解.而至于前i个字符中插入k-1个加号,这又回到了原问题的形式,也就是回到了以前状态,所以状态转移方程就能很快的构造出来了. * 最佳加法表达式 用f[i,j],表示的是在前i个字符中插入j个加号能达到的最小值,最后的答案也就是F[length(s),m]. 于是就有一个动规的方程: F[i,j]:=min(f[i,j],f[k,j-1]+num[k+1,i]) num[k+1,i]表示k+1位到i位所形成的数
文档评论(0)