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