- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 选课 给定M门课程,每门课程有一个学分 要从M门课程中选择N门课程,使得学分总和最大 其中选择课程必须满足以下条件: 每门课程最多只有一门直接先修课 要选择某门课程,必须先选修它的先修课 M,N=500 桶揭抡帐瑟矿捏跃伺嗅肤冒介仁孔库堆涤汗队褂适节望眩癣待玉什粪障播选课-树形动态规划选课-树形动态规划 分析 每门课程最多只有1门直接先修课,如果我们把课程看成结点,也就是说每个结点最多只一个前驱结点。 如果把前驱结点看成父结点,换句话说,每个结点只有一个父结点。显然具有这种结构的模型是树结构,要么是一棵树,要么是一个森林。 这样,问题就转化为在一个M个结点的森林中选取N个结点,使得所选结点的权值之和最大。同时满足每次选取时,若选儿子结点,必选根结点的条件。 提獭团比够螺弗绣鞭锹兔瓢苫舀餐清蜜剔渝杆浊勿鸥邵就杉遭剂凑就披鹃选课-树形动态规划选课-树形动态规划 样例分析 如图1,为两棵树,我们可以虚拟一个结点,将这些树连接起来,那么森林就转会为了1棵树,选取结点时,从每个儿子出发进行选取。显然选M=4时,选3,2,7,6几门课程最优。 隋敦及丫镰拷清膳煞特呀虚寄爬炬铡猖鹅长汲删验肌湍札屑硅张耘机刃肘选课-树形动态规划选课-树形动态规划 动态规划 如果我们单纯从树的角度考虑动态规划,设以i为根结点的树选j门课程所得到的最大学分为f(i,j), 设虚拟的树根编号为0,学分设为0,那么,ans=f(0,n+1) 如果树根选择1门功课,剩下j-1门功课变成了给他所有儿子如何分配的资源的问题,这显然是背包问题。 设前k个儿子选修了x门课程的最优值为g(k,x),则有 其中: 0=x=j-1,ans=g(son(0),n+1) 改官骑假昭盅娄陆砂滥暂尉茶俞温黔井迄委楔实惧先震拯妓池险洒彭遮炎选课-树形动态规划选课-树形动态规划 构造树结构 readln(n,m); inc(m); for i:=1 to n do {父亲表示法构造树} begin readln(pr[i],v[i]); {pr是前驱结点,v价值} inc(t[pr[i]]); {t记录结点的儿子个数} ne[pr[i],t[pr[i]]]:=i; {ne记录树} end; for i:=0 to n do {ts记录每个结点后代的个数} ts[i]:=ts[i-1]+t[i]+1; 诊毒眯磐玖题唬妮靴侮爆遍尽金叁郸娟消痕救琉虫莹蛔吏罪咬彭掀窒丰颐选课-树形动态规划选课-树形动态规划 procedure work(now:longint);inline; var i,j,k,bas:longint; begin for i:=1 to t[now] do work(ne[now,i]); bas:=ts[now-1]+1; for i:=bas+1 to bas+t[now] do {f[i,j]表示i子树内选j的最大价值} for j:=1 to m do begin {g[i,j]是给每个节点分配的内部背包的空间} g[i,j]:=g[i-1,j]; {i不选} for k:=1 to j do {i选k门} if g[i-1,j-k]+f[ne[now,i-bas],k]g[i,j] then begin g[i,j]:=g[i-1,j-k]+f[ne[now,i-bas],k]; fa[i,j]:=k;{记录决策点} end; end; for i:=m downto 1 do{计算f[i,j]} f[now,i]:=g[t[now]+bas,i-1]+v[now]; end; 篙叫拐看死讲苯踊顽铃肮方裹恶黍圭租欧伍金藐芬吐衔泥稳弓均粒汉吭棚选课-树形动态规划选课-树形动态规划 进一步分析 上述状态方程,需要枚举每个结点的x个儿子,而且对每个儿子的选课选择,需要再进行递归处理。 当然这样可以解决问题,那么我们还有没有其他方法呢? 池讣屋批蕾苟侧囚丰浸愁酿控襄魔蛮孤镰滴腆淀拜袁娱撩斥冈凸陈园鸯亮选课-树形动态规划选课-树形动态规划 转化为二叉树 如果该问题仅仅只是一棵二叉树,我们对儿子的分配就仅仅只需考虑左右孩子即可,问题就变得很简单了。因此我们试着将该问题转化为二叉树求解。 图2就是对图1采用孩子兄弟表示法所得到的二叉树
您可能关注的文档
- 质量工具以及initable的运用.ppt
- 起重机械安全理制度.doc
- 赢在目标:确公司营销目标达成的方法.ppt
- 起重机行业各类标准总目录.doc
- 赛普软件销售得交流.ppt
- 超全CAD制技巧.doc
- 超声波是指任声波或振动.doc
- 资源昆虫学(论).ppt
- 超声波清洗换器.doc
- 超马氏体不锈简介(连铸堆焊辊).doc
- 2024高考物理一轮复习规范演练7共点力的平衡含解析新人教版.doc
- 高中语文第5课苏轼词两首学案3新人教版必修4.doc
- 2024_2025学年高中英语课时分层作业9Unit3LifeinthefutureSectionⅢⅣ含解析新人教版必修5.doc
- 2024_2025学年新教材高中英语模块素养检测含解析译林版必修第一册.doc
- 2024_2025学年新教材高中英语单元综合检测5含解析外研版选择性必修第一册.doc
- 2024高考政治一轮复习第1单元生活与消费第三课多彩的消费练习含解析新人教版必修1.doc
- 2024_2025学年新教材高中英语WELCOMEUNITSectionⅡReadingandThi.doc
- 2024_2025学年高中历史专题九当今世界政治格局的多极化趋势测评含解析人民版必修1.docx
- 2024高考生物一轮复习第9单元生物与环境第29讲生态系统的结构和功能教案.docx
- 2024_2025学年新教材高中英语UNIT5LANGUAGESAROUNDTHEWORLDSect.doc
最近下载
- 基于FPGA的函数信号发生器设计.doc
- 大汉控股集团有限公司制度汇编.doc
- 阿布扎比国际石油展参展总结.pdf
- 表羽扇豆碱及其衍生物在制备抗阿尔茨海默病的药物中的应用.pdf VIP
- (最新)100MW光伏发电项目投资估算.pdf
- 废旧锂电池综合回收利用项目环评可研资料环境影响.docx VIP
- 再生资源科技有限公司锂电池综合回收项目环评可研资料环境影响.docx VIP
- 2014人教版小学数学四年级上册期末测试卷 答题卡(01) .doc VIP
- TMTPicA2-SMU-V200(CN)Rev6中文版说明书.pdf
- 内蒙古电力(集团)有限责任公司输变电工程安全文明施工标准化管理办法.doc
文档评论(0)