![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树形DP
文章平均质量分 59
turbo_7
无聊等于慢性自杀
展开
-
hdu1561 The more, The Better hdu1011 Starship Troopers
两道相似的树形dp+有依赖的的背包,有依赖的背包的多层依赖关系可以用树表示出来,所以以后遇到多层依赖关系的背包可以考虑将依赖关系表示成一棵树,然后树形DP求解,有依赖的背包的求解使用到分组背包思想,详见背包九讲相关专题#include #include #include #define M 210 using namespace std; int n,m; int head[M]; struct原创 2013-09-07 20:09:16 · 561 阅读 · 0 评论 -
hdu4705 Y
非连通组合个数=所有组合-连通组合个数 树形DP,根结点表示三个连通组合数的中间那个数#include #include #include using namespace std; #define M 100010 #pragma comment(linker, "/STACK:16777216") struct node{ int v,next; }edge[M*2]; int hea原创 2013-09-07 20:26:45 · 741 阅读 · 0 评论 -
hdu4514 湫湫系列故事——设计风景线
求树的最长直径,之前做过hdu2196,套用那道题的思路,两次dfs,求出每个结点的最长直径,然后找出最大的即为整棵树的最长直径#pragma comment(linker, "/STACK:102400000,102400000") #include #include #include #define M 100010 #define ME 1000010 using namespace std原创 2013-09-07 19:46:30 · 749 阅读 · 0 评论 -
hdu2196 Computer
求树的所有结点的最长直径#include #include #include using namespace std; #define M 10010 int len[M],len2[M],leaf[M],leaf2[M],head[M]; int n,tot; struct node{ int to,dis,next; }edge[M*2]; void insert(int u,int原创 2013-09-07 20:00:00 · 593 阅读 · 0 评论 -
hdu4003 Find Metal Mineral
#include #include #include #define M 10010 using namespace std; struct node{ int to,val,next; }edge[M*2]; int head[M],tot; int dp[M][11],cost[M]; int n,s,k; void insert(int u,int v,int val){ e原创 2013-09-09 13:48:53 · 502 阅读 · 0 评论