
树形dp
文章平均质量分 52
ramay7
Life is not short,but float.
展开
-
SPOJ Two Paths(树形dp,最大不相交路径长度乘积)
题目链接: SPOJ Two Paths 题意: 给一个nn个节点和n−1n-1条边的树,求两条不相交(无公共节点)的路径长度乘积最大值?(路径长度就是路径上边的数量) 数据范围:n≤105n\leq 10^5 分析: 这道题和Codeforces 633 F The Chocolate Spree是其实一样的。本来以为会好些点,实际上还是写了好久。。。。主要是细节太多了,有的地原创 2016-08-03 14:06:42 · 3134 阅读 · 0 评论 -
HDU 4514 湫湫系列故事——设计风景线(并查集+树的直径)
题目链接: HDU 4514 湫湫系列故事——设计风景线 题意: nn个点和mm条无向边。先判环,无环的话输出最长直径。 数据范围:n≤105,m≤106n\leq 10^{5},m\leq 10^{6} 分析: 并查集判环,树的直径两遍dfsdfs即可。 用C++交AC,G++就MLE,o(╯□╰)o//#pragma comment(linker,"/STACK:102400000原创 2016-08-11 23:52:02 · 512 阅读 · 0 评论 -
HDU 4003 Find Metal Mineral(树形dp,从根节点出发k个机器人遍历所有边的最小代价和)
题目链接; HDU 4003 Find Metal Mineral 题意: 给一个nn个节点和n−1n-1条边的树,每条边有权值,在给定的根节点rootroot有KK个机器人,要用这KK个机器人从根节点出发遍历所有的边,求最小代价?代价就是经过的所有边的权值和,机器人不必最终都回到根节点,机器人也可以重复走一些边。 数据范围:n≤104,k≤10n\leq 10 ^4,k\leq 10原创 2016-08-08 20:43:13 · 1068 阅读 · 0 评论 -
HDU 4213 Bob’s Race(树形dp+单调队列)
题目链接: HDU 4213 Bob’s Race 题意: 给出一个nn个节点的树,先对每个点求最远可到的距离,然后有mm询问,每次询问找一个最长的区间使得区间的距离最值差小于等于limitlimit,输出区间长度。 数据范围:n≤5∗104,m≤500,单条边权:≤5000,limit≤107n\leq 5*10^4,m\leq 500,单条边权:\leq 5000,limit\leq原创 2016-08-08 22:49:10 · 521 阅读 · 0 评论 -
UVALive 7003 A Balance Game on Trees(树形dp)
题目链接: UVLive 7003 A Balance Game on Trees 题意: 给一个nn个节点和每个节点的儿子的有根树,根为1,初始时树上每个节点的颜色都为白色,现在要将树上的一些节点的颜色染为黑色使得每个白色节点的周围(直接相连的边的另一端)恰好有KK个黑色节点,求最多可以保留多少个白色节点? 数据范围:n≤100,K≤10n\leq 100,K\leq 10 分析:原创 2016-08-17 16:29:40 · 604 阅读 · 0 评论 -
Codeforces 633 F The Chocolate Spree(树形dp,两条不相交链节点权值和最大)
题目链接: Codeforces 633 F The Chocolate Spree 题意: 给一个nn个节点的树和n−1n-1条边,每个点有一个权值,从树中选择两条不相交的链(无公共节点)使得两条链上节点权值和最大? 数据范围:n≤105,value[i]≤109n\leq 10 ^ 5,value[i] \leq 10 ^ 9 分析: 参考博客:逍遥丶綦 先dfs原创 2016-08-03 13:49:59 · 2339 阅读 · 0 评论 -
POJ 2152 Fire(依赖型树形dp)
题目链接: POJ 2152 Fire 题意: 给一个nn个节点和n−1n-1条边的树,边权代表距离,要在这些点中选择一些点建立消防站,使得每个点都会被消防站覆盖到。每个点有两个属性:cost[i]cost[i]表示在这个点建立消防站的代价,limit[i]limit[i]表示当某个消防站离ii的距离不超过limit[i]limit[i]时,这个点就可以认为被该消防站覆盖,求使得nn个点都被原创 2016-08-06 14:33:38 · 528 阅读 · 0 评论 -
HDU 4126 Genghis Khan the Conqueror(树形dp,MST,破坏原有最小生成树边后的最小生成树代价)
题目链接: HDU 4126 Genghis Khan the Conqueror 题意: 给nn个点和mm条无向边,需要将这nn个点连通。但是有QQ次破坏,每次破坏会把mm条边中的某条边的权值增大,求QQ次破坏每次将nn个点连通的代价的期望?(每次破坏后的最小生成树的代价累加除以QQ) 数据范围:n≤3000,Q≤104,单边权≤107,总边权≤109n\leq 3000,Q\leq原创 2016-08-18 00:14:25 · 1018 阅读 · 0 评论 -
HDU 4756 Install Air Conditioning(树形dp+MST)
题目链接: HDU 4756 Install Air Conditioning 题意: 给nn个点的二维坐标,要将这nn个点连通,边权就是两点距离,其中00号节点是根,可能会破坏除根之外的任意两点的边(不能建边),要求将这nn个点连通的最坏代价? 数据范围:n≤1000n\leq 1000 分析: 上面的黑体字是因为原题中有这句话: But Tom200 is informe原创 2016-08-18 00:25:12 · 565 阅读 · 0 评论 -
Codeforces 337 D Book of Evil(树形dp,两遍dfs)
题目链接: Codeforces 337 D Book of Evil 题意: 给一个nn个节点和n−1n-1条边的树,有mm个给定的点,求这nn个点中到这mm个点的距离都小于等于dd的点的个数?树上两点的距离就是树上两点间路径的边的数量。 数据范围:1≤m≤n≤105,0≤d≤n−11\leq m \leq n \leq 10^5,0\leq d \leq n-1。 分析: 需原创 2016-08-16 11:52:36 · 587 阅读 · 0 评论 -
HDU 4616 Game(树形dp,两遍dfs)
题目链接: HDU 4616 Game 题意: 给一个nn个节点和n−1n-1条边的树。每个节点代表一个房间,每个房间都放有一个价值为正的礼物,有的房间有陷阱,有的房间没陷阱,最多可以经过CC个陷阱(第CC个陷阱时就应该停止),可以从任意的房间开始行走,每个房间只能走一次,求获得的礼物的最大价值和? 数据范围:n≤5∗104,1≤C≤3n\leq 5*10^{4},1\leq C \le原创 2016-08-15 21:40:16 · 547 阅读 · 0 评论 -
HDU 4714 Tree2cycle(树形dp)
题目链接; HDU 4714 Tree2cycle 题意: 给一个nn个节点和n−1n-1条边的树。要求把这棵树变成一个环(所有的点都在环上),每破坏一条边和新建一条边的代价都是1,求最小的代价。 数据范围:n≤106n\leq 10^6 分析: 我们来考虑保留边的最大数量,记为leftleft。首先原来有n−1n-1条边,保留了leftleft条边,那就意味着要破坏n−1−le原创 2016-08-15 21:28:26 · 575 阅读 · 0 评论 -
SPOJ Con-Junctions(树形dp,方案计数)
题目链接: SPOJ Con-Junctions 题意: 给一个nn个节点和n−1n-1条边的树,要用灯点亮所有的边,每条边至少要有一个端点放盏灯就点亮了这条边,求最少的放灯数量和最少放灯数量时的方案数。方案数结果模1000710007输出。 数据范围:n≤100010n\leq 100010 分析: 最少放灯数量很好求。 用dp[u][0]dp[u][0]表示点亮uu子树的原创 2016-08-15 17:23:58 · 528 阅读 · 0 评论 -
SPOJ PT07X Vertex Cover(树形dp)
题目链接: SPOJ PT07X Vertex Cover 题意: 一个无向无环图,给nn个节点和n−1n-1条边,求选择最小的顶点数量使得每条边至少有一个顶点被选中,输出顶点数量。 数据范围:n≤105n\leq 10^{5} 分析: 对于节点ii,定义dp[i][0]dp[i][0]为ii没被选中时将ii子树的所有边都覆盖时的最少点数,定义dp[i][1]dp[i][1]为ii被选中原创 2016-07-30 18:32:25 · 662 阅读 · 0 评论 -
POJ 2342 Anniversary party(树形dp)
题目链接: POJ 2342 Anniversary party 题意: 有nn个人要去参加聚会,每个人都不想和他的直接上属出现,给出每个人的从属关系,每个人会有convivialityconviviality,求聚会的人的convivialityconviviality和最大是多大? 数据范围:n≤6000n\leq 6000 分析: 其实每个人就两种状态dp[i][0]dp[i][原创 2016-07-30 17:45:42 · 500 阅读 · 0 评论 -
POJ 1985 Cow Marathon & HDU 2196 Computer(树的直径)
题目链接; POJ 1985 Cow Marathon HDU 2196 Computer 题意: 两道题其实都是求树的直径。 分析: 树的直径:树中所有最短路径的最大值。 定理:在一个连通的无项无环图中,以任意结点出发所能到达的最远结点,一定是该图直径的端点之一。证明:假设直径是δ(s,e)\delta (s,e),任意结点为xx,其最远能到达的结点为yy。分两种情况: ①如果原创 2016-07-30 17:35:38 · 802 阅读 · 0 评论 -
POJ 1655 Balancing Act(简单树型dp)
题目链接: POJ 1655 Balancing Act 题意: 给一个nn个结点和n−1n-1条无向边的树,定义树中每个结点的平衡值是删掉这个结点形成若干子树的所有子树结点数量最大值。 求所有结点中平衡值的最小值。 数据范围:n≤2∗104n\leq 2*10^{4} 分析: 比较简单的树型dp。 对每个节点记录以它为根的子树的结点数量,dfsdfs更新即可,再判断下父亲结点之上的原创 2016-08-12 00:17:57 · 423 阅读 · 0 评论