![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树形DP
sericon
这个作者很懒,什么都没留下…
展开
-
【树形DP】【模版题】【p2015】
题目:我谷真好看 状态转移方程也就显而易见了: f[u][i]=max(f[u][i],f[u][i-j-1]+f[v][j]+e[i].w) ( 1≤i≤min(q,sz[u]),0≤j≤min(sz[v],i−1) ) u表示当前节点,v是u的一个子节点,sz[u]表示u的子树上的边数,q就是题目中要求的最多保留边数 代码: #include<algorithm> #include...原创 2019-07-25 12:35:39 · 85 阅读 · 0 评论 -
【树形DP】【p3360】【洛谷】
题目:我谷 一道树形DP+01背包 dp[x][i]=max(dp[x][i],dp[x<<1][j]+dp[x<<1|1][i-j-t]); x为当前节点,i为走该走廊的时间 左儿子花j秒,右儿子花i-j-t(2)秒,走走廊t(2)秒(t是读入时的t,可以在dp前就t*2) 代码: #include<bits/stdc++.h> using namespace...原创 2019-07-25 12:40:48 · 102 阅读 · 0 评论 -
【p1267】【树形DP】
题目:我谷 代码: #include<bits/stdc++.h> using namespace std; int n,i,j,k,l,r,ans; int ne[1300][3],cnt[1300],f[1300][3][1300],s[5][20][50]; int read() { int x=0,w=0;char ch=0; while (!isdig...原创 2019-07-25 12:49:47 · 118 阅读 · 0 评论 -
【1270】【访问美术馆】【树形DP】
题目:我谷 基础树形dp 有依赖性背包问题 f[i][j]表示当前节点为i用掉j秒所取得的最大值 转移的时候 如果当前节点是子节点,就判断能取多少 如果不是就枚举当前节点所分配给左树的时间,由左右子树的和转移来。 代码: #include<iostream> #include<cstdio> #include<cstring> #define maxn 1001...原创 2019-07-25 12:52:53 · 84 阅读 · 0 评论