摘要:
通道:http://poj.org/problem?id=3140题意:一棵n个结点的带权无根树,从中删去一条边,使得剩下来的两棵子树的节点权值之和的绝对值最小,并求出得到的最小绝对值代码:#include#include #include #define min(a,b) ((a) 0) retu... 阅读全文
摘要:
通道:http://poj.org/problem?id=1655题意:去掉树上的一个节点,看看剩下的子树中最大的是多少,然后在这些最大值中求一个最小值,如果有多个点都是最小值,那么找一个序号最小的节点思路:树重心:将其与其最大子树连接的边,删除后,划分出的两个子树节点数量最大的中的最小. 题目其... 阅读全文
摘要:
通道:http://poj.org/problem?id=2378题意: 给一颗n个结点的树,节点编号为1~n,把删除一个节点之后, 剩下的分支中节点数量最多的数量不大于总数量一半的编号全部按顺序输出,和上题类似代码:#include #include #include #include #in... 阅读全文
摘要:
通道:http://poj.org/problem?id=3107题意:给一颗n个结点的树,节点编号为1~n,问删除一个节点之后,让剩下的分支中节点数量最多的尽量少,可能有多种方案,按编号顺序输出思路:先dfs计算每个节点子树的节点个数tot[i],再次dfs更新答案:f[i] = max( n-t... 阅读全文
摘要:
通道:http://acm.hdu.edu.cn/showproblem.php?pid=3586题意:给定n个敌方据点,1为司令部,其他点各有一条边相连构成一棵树,每条边都有一个权值cost表示破坏这条边的费用,叶子节点为前线。现要切断前线和司令部的联系,每次切断边的费用不能超过上限limit,问... 阅读全文
摘要:
通道:http://acm.hdu.edu.cn/showproblem.php?pid=4276题意:权边权点树,求在T内从1到n的点权和最大思路:树型DP。先用spfa跑出从点1到点n的最短路。如果这最短的时间已经超过T,那么就是无法完成的。容易知道,最短路径上的边只会经过一次且必须经过一次,而... 阅读全文
摘要:
通道:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3626题意:点权边权树,求从k出发,花费为m情况内,最终回到k点,点权和最大是多少思路:f(i,j)表示子树i, 用花费j最多可以获得的价值 对与i的每个儿子,可以选择分... 阅读全文
摘要:
通道:http://http//acm.hdu.edu.cn/showproblem.php?pid=4044题意:一棵树(编号1-n),1是敌人出口(只有一个敌人)。叶子节点是我军。在节点处装大炮。每个节点有 k 种大炮选择,可是每个节点最多装一个大炮。每个大炮有一个花费和一个威力值。你一共有m钱... 阅读全文
摘要:
通道:http://poj.org/problem?id=3345题意:现在有n个村子,你想要用收买m个村子为你投票,其中收买第i个村子的代价是val[i]。但是有些村子存在从属关系,如果B从属于A国,则收买了A也意味着买通了B,而且这些关系是传递的。问你最小要付出的代价是多少思路:老大和小弟的关系... 阅读全文
摘要:
通道:http://poj.org/problem?id=2486题意:点权树,求从1出发,走V步,最多能遍历到的点权和思路:我们把背包的思想用到这里来,做的步数相当于背包的容量,点上的权值相当于价值,给定一定的背包容量,求最多能装进背包的 价值 设dp[0][s][j]表示从s(当前根节点)... 阅读全文
摘要:
通道:http://acm.hdu.edu.cn/showproblem.php?pid=4003题意:边权树.有K个机器人从S点出发, 问让机器人遍历所有边,最少花费值多少思路:dp[i][j]表示以i为根的树用掉j个人。dp[i][0]表示用了一个人又回到上面的点,然后就是分组背包,每个组必选一... 阅读全文
摘要:
通道:http://acm.hdu.edu.cn/showproblem.php?pid=1561题意:有依赖关系的点权森林,求选m个点权和最大。思路:dp[i][j]:i子树选j个节点,dp[i][j]=max(dp[i][j],dp[i][j-k]+dp[son[i]][k]),森林的处理就是增... 阅读全文
摘要:
通道:http://poj.org/problem?id=1947题意:给出n,p,一共有n个节点,要求减去最少的边是多少,剩下p个节点思路:dp[u][i]:记录u结点,要得到一棵i个节点的子树去掉的最少边数考虑其儿子k1)如果不去掉k子树,则dp[u][i] = min(dp[u][j]+dp[... 阅读全文
摘要:
通道:http://acm.hdu.edu.cn/showproblem.php?pid=1011题意:一棵树有n个节点,每个节点有一定的bug值和价值,一个人从1出发有m个兵(1个兵可以打20个bug),经过一个点,要留下足够的兵才能往下走并且获得该点的价值,问如何用m个兵获得最大的价值思路:dp... 阅读全文
摘要:
通道:http://poj.org/problem?id=1155题意:加权树,叶子节点有点权,问最多能选多少个叶子节点使得到达根节点1的花费大于等于路径和。思路:dp[i][j]:i子树中有j个叶子节点的最大利润。dp[i][j]=max(dp[i][j],dp[i][j-k]+dp[son of... 阅读全文
摘要:
通道:http://codeforces.com/problemset/problem/219/D题意:有n个城市,它们之间有n-1条路(路都是单向的),形成一棵树。现在可以改变一些路的方向,选择一个首都,使得从首都出发能达其它城市,所需要重建的路的数量最少思路:考虑每个节点,他的花费是儿子中加上来... 阅读全文
摘要:
通道:http://poj.org/problem?id=3162题意:对一棵树,求出从每个结点出发能到走的最长距离(每个结点最多只能经过一次),将这些距离按排成一个数组得到d[1],d[2],d[3]……d[n] ,在数列的d中求一个最长的区间,使得区间中的最大值与最小值的差不超过m思路:用2次d... 阅读全文
摘要:
通道:http://poj.org/problem?id=2152题意:n个城市,建防火站,花费w[i],如果这个城市没有防火站,则最近的不超过d[i],求最小花费思路:设dp[i][j]表示i点及其子树都符合情况下i点依赖j点的最小花费,有了这个似乎还不够,再开个一维数组best,best[i]表... 阅读全文
摘要:
通道:http://poj.org/problem?id=1741题意:有多少对[u,v]的距离小于K思路:将无根树转化成有根树进行观察。满足条件的点对有两种情况:两个点的路径横跨树根,两个点位于同一颗子树中。如果我们已经知道了此时所有点到根的距离a[i],a[x]+a[y]#include #in... 阅读全文
摘要:
通道:http://acm.hdu.edu.cn/showproblem.php?pid=2196题意:题意是求树中每个点的最大距离值是多少。思路: 2遍DFS,对于每个父节点,求出子树的最大和次大儿子,然后更新的时候就是这个点要么是儿子所贡献,要么是父亲来的点贡献,记录最大与次大是区分但是父亲贡... 阅读全文