- 4
- 0
- 约4.66千字
- 约 25页
- 2017-11-26 发布于河南
- 举报
NOI导刊_树型动态规划
LET’S USE LINUX! 树型动态规划 长沙市雅礼中学 朱全民 加分二叉树 给定一个中序遍历为1,2,3,…,n的二叉树 每个结点有一个权值 定义二叉树的加分规则为: 左子树的加分× 右子树的加分+根的分数 若某个树缺少左子树或右子树,规定缺少的子树加分为1。 构造符合条件的二叉树 该树加分最大 输出其前序遍历序列 样例 中序遍历为1,2,3,4,5的二叉树有很多,下图是其中的三棵,其中第三棵加分最大,为145. 分析 性质:中序遍历是按“左-根-右”方式进行遍历二叉树,因此二叉树左孩子遍历序列一定在根结点的左边,右孩子遍历序列一定在根结点的右边! 因此,假设二叉树的根结点为k,那么中序遍历为1,2,…,n的遍历序列,左孩子序列为1,2,…,k-1,右孩子序列为k+1,k+2,…,n,如下图 动态规划 设f(i,j)中序遍历为i,i+1,…,j的二叉树的最大加分,则有: f(i,j)=max{f[i,k-1]*f[k+1,j] +d[k]} 显然 f(i,i)=d[i] 答案为f(1,n) 1=i=k==j=n 时间复杂度 O(n3) 要构造这个树,只需记录每次的决策值,令b(i,j)=k,表示中序遍历为i,i+1,…,j的二叉树的取最优决策时的根结点为k 最后前序遍历这个树即可。 选课 给定M门课程,每门课程有一个学分 要从M门课程中选择N门课程,使得学分总和最大 其中选择课程必须满足以下条件: 每门课程最多只有一门直接先修课 要选择某门课程,必须先选修它的先修课 M,N=500 分析 每门课程最多只有1门直接先修课,如果我们把课程看成结点,也就是说每个结点最多只一个前驱结点。 如果把前驱结点看成父结点,换句话说,每个结点只有一个父结点。显然具有这种结构的模型是树结构,要么是一棵树,要么是一个森林。 这样,问题就转化为在一个M个结点的森林中选取N个结点,使得所选结点的权值之和最大。同时满足每次选取时,若选儿子结点,必选根结点的条件。 样例分析 如图1,为两棵树,我们可以虚拟一个结点,将这些树连接起来,那么森林就转会为了1棵树,选取结点时,从每个儿子出发进行选取。显然选M=4时,选3,2,7,6几门课程最优。 转化为二叉树 如果该问题仅仅只是一棵二叉树,我们对儿子的分配就仅仅只需考虑左右孩子即可,问题就变得很简单了。因此我们试着将该问题转化为二叉树求解。 图2就是对图1采用孩子兄弟表示法所得到的二叉树 动态规划 仔细理解左右孩子的意义(如右图): 左孩子:原根结点的孩子 右孩子:原根结点的兄弟 也就是说,左孩子分配选课资源时, 根结点必须要选修,而与右孩子无关。 因此,我们设f(i,j)表示以i为根结点的二叉树分配j门课程的所获得的最大学分,则有, 0=kjn, i ∈(1..m) 时间复杂度O(mn2) 样例求解过程:初始f(i,0)=0 f(6,1)=6, f(5,1)=max{1,6}=6, f(7,1)=2 f(4,1)=max{1,2}=2, f(1,1)=max{1,f(4,1)}=2 f(3,1)=4, f(2,1)=max{1,4}=4 f(5,2)=7 f(7,2)=max{f(5,1)+2}=8 f(4,2)=max{f(7,2),f(7,1)+1}=8 f(1,2)=max{f(4,2),f(4,1)+2}=8 f(2,2)=max{f(1,1)+1, f(3,1)+1)}=5 f(7,3)=9 f(4,3)=max{f(7,2)+1,f(7,3)}=9 f(1,3)=max{f(4,2)+1,f(4,3)}=9 f(2,3)=max{f(1,1)+f(3,1)+1,f(1,2)+1}=9 f(2,4)=max{f(1,3)+1, f(1,2)+f(3,1)+1}=max{9+1,8+4+1}=13 //读入数据 ,转化为孩子兄弟表示 fin n m; score[n+1] = 0; brother[n+1] = 0; // 输入数据并转化为左儿子右兄弟表示法 for (int i=1; i=n; ++i) { int a, b; fin a b; if (a == 0) a = n + 1; score[i] = b; brother[i] = child[a]; child[a] = i; } void dfs( int i, int j) { if (visited[i][j]) return; visited[i][j] = 1;
您可能关注的文档
- 文档版初中英语词汇表.doc
- 2013卫生A近义词汇总.doc
- 考研英语同源异义形容词归纳(黄涛).doc
- 2014新版新目标七年级下册Unit1can you play the guitar section A课件.ppt
- 管理学原理 --第一章.ppt
- 初中英语单词大全(带音标)1-90.doc
- 2011年职称英语考试单选题常用词对方向预测.doc
- 2013314209张协鎏.docx
- 2015年职称英语考试综合类词义分析(近义词).doc
- 2013会考英语基础词汇分类.doc
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
最近下载
- 12S10管道支架、吊架建筑工程规范图集.pdf VIP
- 铸造工艺学(课本).pdf VIP
- 部编版二年级下册语文全册《写字表》生字字帖.pdf VIP
- 数学六年级上册100道口算题大全(全册各类齐全18份).doc VIP
- 八年级物理寒假提升精品讲义第01讲 力(预习)(原卷版).pdf VIP
- 波谱分析法课件.ppt VIP
- 数学分析第五版(上册)华东师大习题答案解析.docx
- 运筹学基础及应用-第1章-线性规划及单纯形法(胡运权版).ppt VIP
- 八年级物理寒假提升精品讲义第01讲 力(预习)(解析版).docx VIP
- 11S405-4 建筑给水塑料管道安装通用详图国标 建筑图集 汇编 .docx VIP
原创力文档

文档评论(0)