- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
动态规划 树形 动规与优化方法 聚会的快乐 你要组织一个由你公司的人参加的聚会。你希望聚会非常愉快,尽可能多地找些有趣的热闹。但是劝你不要同时邀请某个人和他的上司,因为这可能带来争吵。给定N个人(姓名,他幽默的系数,以及他上司的名字),编程找到能使幽默系数和最大的若干个人。 【输入】 第一行一个整数N(N100)。接下来有N行,每一行描述一个人的信息,信息之间用空格隔开。姓名是长度不超过20的字符 串,幽默系数是在0到100之间的整数。 【输出】 所邀请的人最大的幽默系数和。 【样例】 party.in party.out 5 8 BART 1 HOMER HOMER 2 MONTGOMERY MONTGOMERY 1 NOBODY LISA 3 HOMER SMITHERS 4 MONTGOMERY 分析 首先,很显然公司的人员关系构成了一棵树。设f[a]为a参加会议的情况下,以他为根的子树取得的最大幽默值;g[a]为a不参加会议的情况下,以他为根的子树取得的最大幽默值。那么,状态转移方程就是: f[a]=g[b1]+g[b2]+…+g[bk]+1 g[a]=max(f[b1], g[b1])+max(f[b2], g[b2])+…+max(f[bk], g[bk]) 其中b1, b2, …, bk为a的子结点。 最后的答案就是max(f[root], g[root]),root是树根。 三色二叉树(tro) 见文本 树形动态规划(皇宫看守) 太平王世子事件后,陆小凤成了皇上特聘的御前一品侍卫。皇宫以午门为起点,直到后宫嫔妃们的寝宫,呈一棵树的形状;某些宫殿间可以互相望见。大内保卫森严,三步一岗,五步一哨,每个宫殿都要有人全天候看守,在不同的宫殿安排看守所需的费用不同。可是陆小凤手上的经费不足,无论如何也没法在每个宫殿都安置留守侍卫。编程任务:帮助陆小凤布置侍卫,在看守全部宫殿的前提下,使得花费的经费最少。 数据输入:输入数据由文件名为INPUT.TXT的文本文件提供。输入文件中数据表示一棵树,描述如下: 第1行 n,表示树中结点的数目。 第2行至第n+1行,每行描述每个宫殿结点信息,依次为:该宫殿结点标号i(0i=n),在该宫殿安置侍卫所需的经费k,该边的儿子数m,接下来m个数,分别是这个节点的m个儿子的标号r1,r2,...,rm。 对于一个n(0 n = 1500)个结点的树,结点标号在1到n之间,且标号不重复。数据输出:输出到OUTPUT.TXT文件中。输出文件仅包含一个数,为所求的最少的经费。 输入数据示例 输出数据示例 25 问题分析 求给定的带权树的符合下面条件的子顶点集合V: 1. 若点i∈V,则所有与i相邻的点j可被标号。 2. 任意一个点j,若j不属于V,则j可被标号。 3. S=∑(Weight[i],i∈V),并且S最小。 考虑到树本身的特性:除了根节点外,每一个节点都仅与该节点的父节点与儿子节点有关系;大多数情况下,每个节点的状况都是由它的儿子节点的状况决定的。这与动态规划的无后效性要求相符,再加上本题求的又是最优方案,这一切都与动态规划算法不谋而合。 要求覆盖以节点i为顶点的树的最佳方案Vi,显然只需考虑节点i属于或不属于集合V两种情况,两者择优即可。即Vi=min{Vi1,Vi2}(1表示属于,2表示不属于) (一)若i∈V,则对于i的任一儿子j,也只有属于或不属于集合V两种情况: (1)若j∈V,则问题转化到求Vj1的小一级规模问题,转化成功; (2) 若j不属于V,则要不求Vj2,要不就是j不能被j的任意一个儿子标号,则求所有Vk(k为j的儿子),Vi1求好了。 (二)若i不属于V,i一定要能被i的某个儿子j标号,这时求所有Vj(j为i的儿子)。若所有的j都是j被j的儿子标号时最“省”(即所有Vj= Vj2),那么实际上按这样的方案没有一个j∈V,造成了i不能被标号。 这时只要找一个牺牲最小的i的儿子j,把方案Vj2换成Vj1。这样就求出了覆盖以节点i为顶点且不包括节点i的最佳节点集Vi2。 状态转移方程 通过上面的分析,我们很容易得到下面这组状态转移方程: F(i)=min{F(i,1),F(i,2)} F(i,1)=Weight(i)+∑min{F(j),∑min{F(k,1),F(k,2)}} F(i,2)=∑F(j);若所有F(j)F(j,1),则换取代价最小的F(j,2) (以上j为i儿子,k为j儿子) 边界条件 F(i)
您可能关注的文档
- 某咨询公司替某上市公司做的原版作品员工素质培训--科学的工作方法.ppt
- 某女鞋网络整合营销方案.ppt
- 染色体变异(正式版)231.ppt
- 柳智英税收总论1.ppt
- 柳永简介轶事.ppt
- 柳永《雨霖铃》自用5.ppt
- 柴胡与银柴胡.ppt
- 标准化销售流程.ppt
- 树与二叉树的关系.ppt
- 标志VI手册模板31.ppt
- 2025年注册安全工程师考试安全生产技术试题及答案.docx
- 2025年注册环保工程师真题及参考答案(夺分金卷).docx
- 教学美术的基本技巧-美术教育专家.pptx
- 2025政工职称考试题库(附参考答案).docx
- 数字化银行的未来趋势-数字化银行专家.pptx
- 艺术设计的创新实践-博士研究之路与成果展望.pptx
- 2025注册安全工程师《安全生产管理》模拟试卷及答案.docx
- 英语视域下的金属魅力-从制作到艺术的金属工艺之旅.pptx
- 小学英语新外研版Join In剑桥三年级下册Supplementary activitiesUnit 4教学课件2025春.pptx
- 国际金融选择题及答案.docx
文档评论(0)