- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
长决定在一些路口加装电子眼
树形DP
中山纪念中学 宋新波
例一:最大利润
政府邀请了你在火车站开饭店,但不允许同时在两个相连接的火车站开。任意两个火车站有且只有一条路径,每个火车站最多有50个和它相连接的火车站。
告诉你每个火车站的利润,问你可以获得的最大利润为多少。
例如下图是火车站网络:
最佳投资方案是在1,2,5,6这4个火车站开饭店可以获得利润为90
例一:最大利润
输入:第一行输入整数N(=100000),表示有N个火车站,分别用1,2。。。,N来编号。接下来N行,每行一个整数表示每个站点的利润,接下来N-1行描述火车站网络,每行两个整数,表示相连接的两个站点。
输出:输出一个整数表示可以获得的最大利润。
样例输入: 样例输出:
6 90
10
20
25
40
30
30
4 5
1 3
3 4
2 3
6 4
分析
任意两个火车站有且只有一条路径,是一棵树。
我们用f[x]表示在以x为根的树中开饭店,x一定要开,所能获得的最大利润,g[x] 表示在以x为根的树中开饭店,x一定不开,所能获得的最大利润,如果x开,则它的儿子们y1,…yk一定不能开,如果x不开,它的儿子们可开可不开,于是得到以下状态转移方程:
f[x]= +a[x] (yi是x的儿子)
g[x]= (yi是x的儿子)
实现时用dfs去实现,每个点只需求一次,所以时间复杂度为O(N)。
例二:电子眼【GDKOI2006】
东莞市是一个环境优美、气候宜人的城市。因为城市的交通并不繁忙,市内的道路网很稀疏。准确地说,东莞市有N条马路和N个路口,每条马路连接两个路口,每两个路口之间最多只有一条马路。作为一条交通网络,显然每两个路口之间都是可达的。为了更好地管理东莞市的交通,市长决定在一些路口加装电子眼,用来随时监视路面情况。这些装在路口的电子眼能够监视所有连接到这个路口的马路。现在市长想知道最少需要在多少个路口安装电子眼才能监视所有的马路。市长已经把所有的路口都编上了1~N的号码。 给你东莞市的地图,你能帮忙吗?
例二:电子眼【GDKOI2006】
Input
输入文件第1行包括一个数字N(1=N=100000),表示路口数。接下来N行,第i+1行的第一个数字ki表示有ki条马路与路口i相连,后面紧跟着ki个数字,表示与路口i直接相连的路口。
Output
输出最少需要安装电子眼的数量。
Sample Input
3
2 2 3
2 1 3
2 1 2
Sample Output
2
分析
题目给出的模型正好是一棵树加上一条边,所以一定有且仅有一个环
去掉环上任意一条边得到树
DFS找到环上一条边,设连接x和y
什么情况才能去掉呢?
X一定要选或者y一定要选就可以了
从而得到树形DP模型
分析
f[x]表示在x处安装电子眼的情况下监控以x为根的子树中所有边所需安装的最少电子眼数
G[x]表示在x处不安装电子眼的情况下监控以x为根的子树中所有边所需安装的最少电子眼数
f[x]:= min(f[y],g[y])+1,其中y是x的儿子
g[x]:= f[y],其中y是x的儿子
以x和y为根分别做一次树形DP
答案就是min(f[x],f[y]),时间复杂度为O(N)
例三:选课
大学里实行学分。每门课程都有一定的学分,学生只要选修了这门课并考核通过就能获得相应的学分。学生最后的学分是他选修的各门课的学分的总和。
每个学生都要选择规定数量的课程。其中有些课程可以直接选修,有些课程需要一定的基础知识,必须在选了其它的一些课程的基础上才能选修。例如,《数据结构》必须在选修了《高级语言程序设计》之后才能选修。我们称《高级语言程序设计》是《数据结构》的先修课。每门课的直接先修课最多只有一门。两门课也可能存在相同的先修课。为便于表述每门课都有一个课号,课号依次为1,2,3,……。
例三:选课
下面举例说明
例子中1是2的先修课,即如果要选修2,则1必定已被选过。同样,如果要选修3,那么1和2都一定已被选修过。
学生不可能学完大学所开设的所有课程,因此必须在入学时选定自己要学的课程。每个学生可选课程的总数是给定的。现在请你找出一种选课方案,使得你能得到学分最多,并且必须满足先修课优先的原则。假定课程之间不存在时间上的冲突。
例三:选课
输入:
输入文件的第一行包括两个正整数M、N(中间用一个空格隔开)其中M表示待选
您可能关注的文档
最近下载
- americanculture小学英语美国文化专题.pptx VIP
- 中国珠宝首饰传统文化 夏商周 中国古代夏商周(商)首饰种类2.pptx VIP
- 大学生科技创新课程之中美青年创客大赛(西南交通大学)中国大学MOOC 慕课 章节测验 期末考试答案.docx VIP
- 中国珠宝首饰传统文化 夏商周 中国古代夏商周(夏)首饰种类1.pptx VIP
- 【课程思政案例】《机械设计基础》.docx VIP
- 2025中级注册安全工程师《安全生产技术基础》考前密训10页纸.docx VIP
- 科研伦理与学术规范期末考试答案.docx VIP
- 检验科重点专科汇报.pptx VIP
- 重大社2024《财务实训教程—智能财务共享》教学课件-费用共享.pptx VIP
- AmericanCulture.ppt VIP
文档评论(0)