![](https://img-blog.csdnimg.cn/20190918135101160.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
树形DP
文章平均质量分 61
。十二。
这个作者很懒,什么都没留下…
展开
-
【Ybtoj】【NOIP2021 模拟赛 B 组 Day8】最大匹配【树形DP】
解题思路考虑树形DP,设:f[i]f[i]f[i]表示以i为子树且不选他与儿子的连边时,最多能匹配多少条边ff[i]ff[i]ff[i]表示以i为子树最多能匹配多少条边。g[i]g[i]g[i]表示以i为子树且不选他与儿子的连边时,有几种方案能匹配最多的边gg[i]gg[i]gg[i]表示以i为子树有几种方案能匹配最多的边因为是连通图,可以从任意一个点往下搜,然后一直到底,回溯处理。ff[x]ff[x]ff[x]初值是f[x]f[x]f[x],gg[x]gg[x]gg[x]初值是g...原创 2021-11-06 17:20:57 · 106 阅读 · 0 评论 -
(洛谷 P4284) 概率充电器【期望DP】【树形DP】
解题思路我们可以把总的期望个数变成每个点对答案的贡献.如果某个点被点亮它的贡献就是1,否则是0,所以我们只需要求出每个点被点亮的概率即可。设f[x]f[x]f[x]表示x这个点不连通的概率则先考虑x的儿子对它的贡献,那么f[x]=(1−q[x])∗∏(1−w+f[y]∗w)f[x]=(1−q[x])∗∏(1−w+f[y]∗w)f[x]=(1−q[x])∗∏(1−w+f[y]∗w),其中y为x的儿子,w为边连通的概率。现在考虑y的父亲x对y的贡献,我们设res为x除去y这个点连通的概率,那么re...原创 2021-07-19 21:32:02 · 88 阅读 · 0 评论 -
(纪中)3501. 消息传递)(news)【树形DP】
解题思路首先可以想到暴力每一个点作为根,求最小的传递时间。设f[i]表示某点以i号边连向的子树中所有节点都被传递到消息的最短时间。易得:考虑贪心,让fif_ifi的孩子中消耗时间最大的先被传递,所以我们可以把fjf_jfj从大到小排序,orderorderorder表示f_j在序列中排在第几位(因为要依次传给每个儿子),这样fj+orderjf_j+order_jfj+orderj就表示爸爸以jjj这条边连向的子树全部被传递所需时间,这样fif_ifi为fjf_jfj中最大值,也...原创 2021-07-13 22:15:56 · 71 阅读 · 1 评论 -
【Ybtoj 第22章例4】选课方案【树形DP】
解题思路这道题是经典的树上背包问题,把每个节点看做物品,则子节点是依赖于父节点的。设f[dep][j]f[dep][j]f[dep][j]表示处理到节点depdepdep,选了jjj节课可以得到的最大学分。设y为depdepdep的子节点,s[dep]s[dep]s[dep]表示选课程dep能够获得的学分,得:f[dep][j]=max(f[dep][j−1],f[dep][j−k−1]+f[y][j])+s[dep];f[dep][j]=max(f[dep][j-1],f[dep][j-k-1]..原创 2021-06-14 22:09:28 · 101 阅读 · 0 评论 -
【Ybtoj 第22章例3】最长距离【树形DP】
解题思路从每个点出发到达的最远距离 对于一个点的答案有222 种,向子节点走/向父节点走。。第一遍dfsdfsdfs找向子节点走的最远距离,第二遍dfsdfsdfs取 max(子节点走,向父节点走+父节点向下的最大值)max(子节点走,向父节点走+父节点向下的最大值)max(子节点走,向父节点走+父节点向下的最大值),因为对于一个节点x最长距离可能是经过它的父节点fa 然后向下。特判:由于路径不能重复,当xxx为fafafa向子节点走的最远节点时,要用向父节点走+父节点向下的次大值,因为如果用最...原创 2021-06-14 22:07:05 · 212 阅读 · 0 评论 -
【Ybtoj 第22章例2】结点覆盖【树形DP】
解题思路个节点被覆盖只有三种可能:设fx,0/1/2f_{x,0/1/2}fx,0/1/2 分别表示被父亲/孩子/自己/覆盖,可以得到转移方程:fx,0=∑fsonx,0f_{x,0}=∑f_{son_x,0}fx,0=∑fsonx,0(因为他被自己的父亲覆盖,所以它本身及它的子节点都不能选,若选了儿子,就会被儿子再覆盖,故子节点只有000的状态)fx,1=min(fsonx,1−min(fsonx,1,fsonx,0))+∑min(fsonx,0,fsonx,1)f_{x,1}..原创 2021-06-13 17:03:50 · 190 阅读 · 0 评论 -
【Ybtoj 第22章例1】树上求和【树形DP】
解题思路一道树形DP的模板,设f[i][0,1]表示第i个节点的子树的最大值和,0/1表示选或不选这个节点,设y表示x的儿子,得:f[x][0]=max(f[y][0],f[y][1])f[x][0]=max(f[y][0],f[y][1])f[x][0]=max(f[y][0],f[y][1])f[x][1]=f[y][0]+rxf[x][1]=f[y][0]+r_xf[x][1]=f[y][0]+rx代码#include<iostream>#include<c...原创 2021-06-13 16:51:44 · 119 阅读 · 0 评论 -
【洛古 P1122】 最大子树和【树形DP】
解题思路fif_ifi表示以i为根节点的最大子树和,$ f_i的初值就是ai。如果i的子节点权值>0,i的初值就是a_i 。如果i 的子节点权值>0,i的初值就是ai。如果i的子节点权值>0,i就可以保留这个子节点,那么: fi=ai+max{fson,0}f_i=a_i+max\{f_{son},0\}fi=ai+max{fson,0}最后fif_ifi 取maxmaxmax,注意有负数,所以赋初值要赋小。代码#include<iostream>..原创 2021-06-13 11:39:37 · 93 阅读 · 0 评论 -
技能树(difficult)【树形DP】
Time Limit:1000MS Memory Limit:65536KTotal Submit:18 Accepted:11Description 玩过DiabloDiabloDiablo的人对技能树一定是很熟悉的。一颗技能树的每个结点都是一项技能,要学会这项技能则需要耗费一定的技能点数。只有学会了某一项技能以后,才能继续学习它的后继技能。每项技能又有着不同的级别,级别越高效果越好,而技能的升级也是需要 耗费技能点数的。 有个玩家积攒了一定的技能点数,他想尽可能地利用这些技能点数来达到最原创 2020-08-17 11:38:41 · 342 阅读 · 1 评论 -
2008GDSOI 鱼肉炸弹【树形DP】
Time Limit:1000MS Memory Limit:65536KTotal Submit:24 Accepted:7Description 舒克和贝塔终于下定决心要去营救被关押在众猫聚居的AAA城中的大米同志。 AAA城的构造是很奇怪的。AAA城中的所有NNN栋建筑沿着一条直线排列,而且没有两栋楼的高度是相同的。而大米同志就被关押在其中的某栋建筑中。每一栋建筑的顶上都是有一些猫们在看守的。如果按照从一端到另一端的顺序将所有的建筑编号为1到NNN,那么第i栋建筑的高度为Hi,顶上的猫原创 2020-08-15 09:25:03 · 127 阅读 · 1 评论 -
【洛谷 2515】【HAOI 2010】【BZOJ 2427】软件安装【树形DP+Tarjan】
题目描述现在我们的手头有NNN个软件,对于一个软件iii,它要占用WiW_iWi的磁盘空间,它的价值为$V_i 。我们希望从中选择一些软件安装到一台磁盘容量为。我们希望从中选择一些软件安装到一台磁盘容量为。我们希望从中选择一些软件安装到一台磁盘容量为M计算机上,使得这些软件的价值尽可能大(即计算机上,使得这些软件的价值尽可能大(即计算机上,使得这些软件的价值尽可能大(即V_i的和最大)。但是现在有个问题:软件之间存在依赖关系,即软件i只有在安装了软件的和最大)。但是现在有个问题:软件之间存在依赖关系,原创 2020-08-15 08:00:18 · 127 阅读 · 1 评论 -
皇宫看守【树形DP】
Time Limit:10000MS Memory Limit:65536KTotal Submit:63 Accepted:27Case Time Limit:1000MSDescription太平王世子事件后,陆小凤成了皇上特聘的御前一品侍卫。皇宫以午门为起点,直到后宫嫔妃们的寝宫,呈一棵树的形状;某些宫殿间可以互相望见。大内保卫森严,三步一岗,五步一哨,每个宫殿都要有人全天候看守,在不同的宫殿安排看守所需的费用不同。可是陆小凤手上的经费不足,无论如何也没法在每个宫殿都安置留守侍卫。帮原创 2020-08-14 10:07:33 · 146 阅读 · 0 评论 -
将功补过【树形DP】
Time Limit:10000MS Memory Limit:65536KTotal Submit:41 Accepted:28Case Time Limit:1000MSDescription 作为间谍专家的ElvisElvisElvis HanHanHan受窃取XXX星球军事中心的秘密情报,他已经成功进入军事中心。但是很不幸的是,在他还没有找到任务需要情报的时候就被发现,这时他清楚他不可能完成任务了,不过还有机会将功补过,也就是得到一些不如任务情报有价值的其他情报,如果得到的情报的总价值原创 2020-08-13 21:19:14 · 99 阅读 · 1 评论 -
战略游戏(difficult)【树形DP】
Time Limit:1000MS Memory Limit:65536KTotal Submit:83 Accepted:50Description Bob喜欢玩电脑游戏,特别是战略游戏。但是他经常无法找到快速玩过游戏的办法。现在他有个问题。他要建立一个古城堡,城堡中的路形成一棵树。他要在这棵树的结点上放置最少数目的士兵,使得这些士兵能了望到所有的路。注意,某个士兵在一个结点上时,与该结点相连的所有边将都可以被了望到。 请你编一程序,给定一树,帮BobBobBob计算出他需要放置最少的士兵原创 2020-08-13 20:49:29 · 187 阅读 · 0 评论 -
【poj2342】最大利润【树形DP】
Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 14991 Accepted: 8538DescriptionThere is going to be a party to celebrate the 80-th Anniversary of the Ural State University. The University has a hierarchical structure of employees. It means原创 2020-08-13 19:24:03 · 105 阅读 · 0 评论 -
【洛谷 2014】选课【树形DP】
Time Limit:1000MS Memory Limit:65536KTotal Submit:101 Accepted:69Description 大学里实行学分。每门课程都有一定的学分,学生只要选修了这门课并考核通过就能获得相应的学分。学生最后的学分是他选修的各门课的学分的总和。 每个学生都要选择规定数量的课程。其中有些课程可以直接选修,有些课程需要一定的基础知识,必须在选了其它的一些课程的基础上才能选修。例如,《数据结构》必须在选修了《高级语言程序设计》之后才能选修。我们称《高级语原创 2020-08-13 19:05:13 · 124 阅读 · 1 评论 -
【洛谷 2015】 二叉苹果树【树形DP】
题目描述有一棵苹果树,如果树枝有分叉,一定是分222叉(就是说没有只有111个儿子的结点)这棵树共有NNN个结点(叶子点或者树枝分叉点),编号为1−N1-N1−N,树根编号一定是111。我们用一根树枝两端连接的结点的编号来描述一根树枝的位置。下面是一颗有444个树枝的树。现在这颗树枝条太多了,需要剪枝。但是一些树枝上长有苹果。给定需要保留的树枝数量,求出最多能留住多少苹果。输入格式第111行222个数,NNN和Q(1<=Q<=N,1<N<=100)Q(1<=Q&原创 2020-08-13 15:53:44 · 222 阅读 · 0 评论 -
【洛谷 1040】 加分二叉树【树的遍历+区间DP】
题目描述 设一个n个节点的二叉树tree的中序遍历为(l,2,3,…,n)(l,2,3,…,n)(l,2,3,…,n),其中数字1,2,3,…,n1,2,3,…,n1,2,3,…,n为节点编号。每个节点都有一个分数(均为正整数),记第j个节点的分数为di,treedi,treedi,tree及它的每个子树都有一个加分,任一棵子树subtreesubtreesubtree(也包含treetreetree本身)的加分计算方法如下:subtreesubtreesubtree的左子树的加分×subtree× s原创 2020-08-13 11:26:42 · 159 阅读 · 0 评论 -
电子眼【树状DP】
电子眼Time Limit:10000MS Memory Limit:65536KTotal Submit:101 Accepted:32Case Time Limit:1000MSDescription中山市石一个环境优美、气候宜人的小城市。因为城市的交通并不繁忙,市内的道路网很稀疏。准确地说,中山市有N-1条马路和N个路口,每条马路连接两个路口,每两个路口之间最多只有一条马路。作...原创 2019-12-14 11:38:17 · 141 阅读 · 0 评论 -
没有上司的晚会【树状DP】
> Description Ural大学有N个职员,编号为1~N。他们有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。每个职员有一个快乐指数。现在有个周年庆宴会,要求与会职员的快乐指数最大。但是,没有职员愿和直接上司一起与会。> Input第一行一个整数N。(1<=N<=6000)接下来N行,第i+1行表示i号职员的快乐指数Ri...原创 2019-09-07 07:43:22 · 167 阅读 · 1 评论