随笔分类 -  6.05.0 树形DP

摘要:树型DP + 可并堆 非常清楚的想到是树型DP, 但是如何维护最小值, 于是就去新学了可并堆 cpp include include include include include define ll long long using namespace std; const int MAXN = 1 阅读全文
posted @ 2018-04-27 21:20 Mr_Wolfram 阅读(155) 评论(1) 推荐(0)
摘要:二次扫描与换根法 用于解决无根树,对于每一个节点作为根时都要统计 做法: 1.先以任意一个节点为根,做树形DP,保存每个节点的DP值 2.然后自上而下dfs,对于每个节点考虑以他为根的最大值 cpp include include include include using namespace st 阅读全文
posted @ 2018-03-21 08:46 Mr_Wolfram 阅读(167) 评论(0) 推荐(0)
摘要:树形分组背包 注意顺序 cpp include include include include include include using namespace std; const int MAXN = 305; vector g[MAXN]; int dp[MAXN][MAXN], num[MAX 阅读全文
posted @ 2018-03-20 11:44 Mr_Wolfram 阅读(172) 评论(0) 推荐(0)
摘要:树型DP 一个人不能和他的直接上司一起去,那么就分别保存这个人去和不去的最大值 注意转移方程 cpp include include include include using namespace std; const int MAXN = 7005; int n, num[MAXN], dp[MA 阅读全文
posted @ 2018-03-20 09:45 Mr_Wolfram 阅读(156) 评论(0) 推荐(0)