树形动态规划之树的最大独立集
树的最大独立集
对于一颗n个结点的无根树,选出尽量多的的结点,使得任何两个结点均不相邻(称为最大独立集),然后输入n-1条无向边,输出一个最大独立集(如果有多解,则任意输出一组)。
分析:
用d(i)表示以i为根结点的子树的最大独立集的大小。此时需要注意的是,本题的树是无根的:没有所谓的父子关系,而只是一些无向边。没关系,只要任选一个跟r,无根树就变成了有根树,上述状态的定义也就有意义了。
结点i只有两种决策,选和不选。如果不选i,则问题转化为求出i所有的儿子的d值再相加;若选i,则它的儿子全部不能选,问题转化为了求出i的所有孙子的d值之和。换句话说,状态转移方程为:
d(i)=max{1+Ed(j)(j属于gs(i)),Ed(j)(j属于s(i))}
其中gs(i)和s(i)分别代表i的孙子集合和儿子集合。
代码应该如何编写呢?上面的方程涉及“枚举结点i的所有儿子和孙子结点”,颇为不便。其实可以换另一个角度来看:不从i找s(i)和gs(i)的元素,而从s(i)和gs(i)的元素找i。换句话说,当计算出一个d(i)后,用它去更新i的父亲和祖父结点的累加值Ed(j)(j属于gs(i)和Ed(j)(j属于s(i))。这样一来,每个结点不必记录其子结点有哪些,只需记录父结点即可。
树形动态规划之树的最大独立集相关推荐
- 旅游(树形dp求树的最大独立集)
链接:https://ac.nowcoder.com/acm/problem/15748 来源:牛客网 题目描述 Cwbc和XHRlyb生活在s市,这天他们打算一起出去旅游. 旅行地图上有n个城市,它 ...
- c++ 不撞南墙不回头——树形动态规划(树规)
不撞南墙不回头--树规总结 焦作一中信息学oy 之所以这样命名树规,是因为树规的这一特殊性:没有环,dfs是不会重复,而 ...
- 不撞南墙不回头——树形动态规划(树规)
不撞南墙不回头--树规总结 焦作一中信息学oy 之所以这样命名树规,是因为树规的这一特殊性:没有环,dfs是不会重复,而 ...
- 树上的动态规划--树的最大独立集--刷表法
树的最大独立集 对于一棵有N个结点的无根树,选出尽量多的结点,使得任何两个结点均不相邻(称为最大独立集). 输入 第1行:1个整数N(1 <= N <= 6000),表示树的结点个数,树中 ...
- 一本通提高篇 树形动态规划
先写个考试 鸽着~ 考试有树 d p dp dp紫题 我回来了 每年联赛基本都有好几道题时树 d p dp dp,这块一定得好好学 U P D : 20201109 UPD:20201109 UPD: ...
- HDU1520 Anniversary party 树形动态规划
HDU1520 Anniversary party 树形动态规划 Anniversary party Time Limit: 2000/1000 MS (Java/Others) Memory ...
- 蓝桥杯 算法训练(四)结点选择(树形动态规划)
结点选择(树形动态规划)C语言 问题描述 有一棵 n 个节点的树,树上每个节点都有一个正整数权值.如果一个点被选择了,那么在树上和它相邻的点都不能被选择.求选出的点的权值和最大是多少? 输入格式 第一 ...
- Facebook Hacker Cup 2015 Round 1--Corporate Gifting(树形动态规划)
原题:https://www.facebook.com/hackercup/problems.php?pid=759650454070547&round=344496159068801 题意: ...
- 假如我是儿子——树形动态规划
--来自焦作一中卢裕东 想给这篇总结起个霸气又有意义的名字,翻来覆去,想到了今年暑假在郑州的NOIP夏令营,朱全民老师讲树规时说的一句惊天动地的话,那时给我们举例子,就有了这句:假如我是儿子!好吧,我 ...
最新文章
- 知乎高赞:字节总监的开发手记!
- 挑选SaaS企业需要注意十要素
- p5js可以在linux上运行吗,在linux上使用python运行phantomjs
- 路考步骤七步走 科目三考试一定没问题!
- LeetCode 676. 实现一个魔法字典(哈希)
- 这款App被端了!曾是蔡徐坤一亿微博转发量的幕后推手 半年吸金800万
- 查看idea的安装位置_idea怎么重置默认配置-idea重置默认配置的方法步骤
- php面向对象之get和set方法
- mediarecoder 安卓_android 通过MediaRecorder实现简单的录音示例
- linux非图形界面运行vscode,linux无法启动vscode怎么办
- 虚拟机virtualBox
- bzoj 1045: [HAOI2008]糖果传递
- 进阶 2 日期时间类
- 深度Linux收费,Deepin专业版为收费的,而Deepin社区版则是能免费使用的
- 孙过庭草书:《景福殿赋》(图像古昔,以当箴规),韵味十足!
- netty报错:远程主机强迫关闭了一个现有的连接
- 中国剩余定理求解同余线性方程组(模数互素和非互素的情况)
- c语言 交通处罚单管理程序 typedef struct,交通罚单.doc
- 语义分割模型------unet unet++
- leetcode:13、罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。