![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树状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 · 684 阅读 · 0 评论 -
POJ1947 Rebuilding Roads
树形dp!!!关键是枚举s点的所有的不去掉k子树的情况!!! 因为是树形DP,而子问题往往涉及的是子树的信息,所以我们要对树先进行深搜,求出子问题的解,然后再返回根节点,求根节点的信息。。。 #include #include #include #include #include #include #include #include #include转载 2013-07-19 11:16:38 · 641 阅读 · 0 评论 -
POJ3659 Cell Phone Network
#include #include #include #include #include #include #include #include using namespace std; #define inf (1 << 29) #define Min(a, b) (a) < (b) ? (a) : (b) #define maxn 21000 struct T { int v, next转载 2013-07-24 20:57:51 · 724 阅读 · 0 评论 -
zoj3201 Tree of Tree
#include #include #include #include #include #include #include #include #include #include using namespace std; #define inf 200000000 long long dp[109][109],ans,w[109]; int head[109],cnt,n,k; struc原创 2013-08-14 15:46:17 · 718 阅读 · 0 评论 -
FZU2038 Another Postman Problem 树状DP
题目比较难看懂,给了n个点和n-1条边,并且保证所有的点都是连通的,求每个点到其他点的距离的和,每枚举一个点去走肯定是比较麻烦的,可以转化成求每条边走的次数,那么答案就是 次数乘以边权,每条边走的次数 等于 整个树的 节点数 减去当前子树的节点数 然后再乘以当前的节点数,可能有点绕口,画个树 推一下,求出以后呢 再乘以边权 就是最后的答案了, 我用了两边的搜索,第一遍求出走的时候当前一步的子树的原创 2014-03-01 19:27:39 · 970 阅读 · 0 评论 -
HDU4276 The Ghost Blows Light 树形DP
做这个题的时候想到了,先来一遍最短路,判断是否可以到达,若可以减去最短路的花费,再在剩下的花费里进行DP求最优解,想到了但是没做到,很多细节没有处理好,结果崩盘了,唉,看题解很多人都是两边dfs,不过这位大牛也是先spfa了一遍, 给我这个弱菜看看 刚好,这篇好好记录下来, 最后参考了大牛的:http://blog.csdn.net/acm_cxlove/article/details原创 2014-06-25 21:56:40 · 608 阅读 · 0 评论