树状DP
韦我独尊-德天独厚
这个作者很懒,什么都没留下…
展开
-
HDU4340 Capturing a country 树状DP经典
很明显的树状DP。状态:dp[i][j][k]i:第i个城市j:为0时用A占领;为1时用B占领k:为0时,全部取了一半的时间;为1时,已经有一个连通的城市选取了完整的价值。假设城市1为树的根,最终的答案就为:min(dp[1][0][1], dp[1][1][1])转移:假设正搜索到第u个城市,它的叶子节点已经搜索完成转载 2013-07-17 22:08:45 · 701 阅读 · 0 评论 -
POJ1947 Rebuilding Roads
树形dp!!!关键是枚举s点的所有的不去掉k子树的情况!!! 因为是树形DP,而子问题往往涉及的是子树的信息,所以我们要对树先进行深搜,求出子问题的解,然后再返回根节点,求根节点的信息。。。#include#include#include#include#include#include#include#include#include转载 2013-07-19 11:16:38 · 653 阅读 · 0 评论 -
POJ3659 Cell Phone Network
#include#include#include#include#include#include#include#includeusing namespace std;#define inf (1 << 29)#define Min(a, b) (a) < (b) ? (a) : (b)#define maxn 21000struct T{ int v, next转载 2013-07-24 20:57:51 · 738 阅读 · 0 评论 -
zoj3201 Tree of Tree
#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define inf 200000000long long dp[109][109],ans,w[109];int head[109],cnt,n,k;struc原创 2013-08-14 15:46:17 · 740 阅读 · 0 评论 -
FZU2038 Another Postman Problem 树状DP
题目比较难看懂,给了n个点和n-1条边,并且保证所有的点都是连通的,求每个点到其他点的距离的和,每枚举一个点去走肯定是比较麻烦的,可以转化成求每条边走的次数,那么答案就是 次数乘以边权,每条边走的次数 等于 整个树的 节点数 减去当前子树的节点数 然后再乘以当前的节点数,可能有点绕口,画个树 推一下,求出以后呢 再乘以边权 就是最后的答案了,我用了两边的搜索,第一遍求出走的时候当前一步的子树的原创 2014-03-01 19:27:39 · 988 阅读 · 0 评论 -
HDU4276 The Ghost Blows Light 树形DP
做这个题的时候想到了,先来一遍最短路,判断是否可以到达,若可以减去最短路的花费,再在剩下的花费里进行DP求最优解,想到了但是没做到,很多细节没有处理好,结果崩盘了,唉,看题解很多人都是两边dfs,不过这位大牛也是先spfa了一遍, 给我这个弱菜看看 刚好,这篇好好记录下来,最后参考了大牛的:http://blog.csdn.net/acm_cxlove/article/details原创 2014-06-25 21:56:40 · 623 阅读 · 0 评论