51nod 1424 零树(树形dp)
来源:互联网 发布:淘宝开店 pdf 编辑:程序博客网 时间:2024/05/16 06:01
题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1424
思路:与上题相似,dp[u][1/0]代表将结点u所在联通块情况所需要的+1/-1的操作数
dp[u][1] = max(dp[son][1])
dp[u][0] = max(dp[son][0])
然后再处理下情况所需要的差值
代码:
#include<bits/stdc++.h>using namespace std;const int N = 1e5+5;int v[N];long long dp[N][2];vector<int> G[N];int n;int dfs(int u,int fa){ for(int i = 0;i < G[u].size();i++) { int son = G[u][i]; if(son == fa) continue; dfs(son,u); dp[u][1] = max(dp[u][1],dp[son][1]); dp[u][0] = max(dp[u][0],dp[son][0]); } int diff = v[u] + dp[u][1] - dp[u][0]; dp[u][diff < 0] += abs(diff);}int main(){ scanf("%d",&n); int a,b; for(int i = 0;i < n-1;i++) { scanf("%d%d",&a,&b); G[a].push_back(b); G[b].push_back(a); } for(int i = 1;i <= n;i++) scanf("%d",&v[i]); dfs(1,-1); printf("%lld\n",dp[1][0]+dp[1][1]); return 0;}
阅读全文
0 0
- 51nod 1424 零树(树形dp)
- 51nod 1424 零树(树DP)
- 51nod 1424 零树(树dp)
- 51Nod - 1737 树形dp
- 51nod-1424 零树
- 51Nod-1424-零树
- 51nod 1424 零树
- 51Nod 1405 树的距离之和(树形dp)
- 51NOD-1405 树的距离之和(树形DP)
- 51nod 1405 树的距离之和【树形dp】
- 51nod 苹果曼和树 (树形dp)
- 51nod 1500 苹果曼和树(树形dp)
- 51nod 1405 树的距离之和 (树形dp)
- 51 nod 1500 苹果曼和树(树形DP)
- 51 nod 1412 AVL树的种类(树形DP)
- 【树形DP】51Nod 1500 苹果曼和树
- 51nod 1500 苹果曼和树【树形DP】
- 51nod 1500 苹果曼和树 树形DP
- 新一代SSD接口来了 | M.2接口发福版?
- 暑期集训 WEEK3
- 8_10教务管理系统
- JavaScript操作BOM
- 和为s的两个数字VS和为s的连续正数序列
- 51nod 1424 零树(树形dp)
- V-Parenthesis 前缀+ZKW线段树或RMQ
- 数组、List和ArrayList的区别
- Rikka with Graph(HDU 6090)
- QGraphicsView 如何实现百度地图按照鼠标点进行放大缩小效果
- 在VS2013环境下使用EF框架与Sqlite(二)
- SQL Server 检测到基于一致性的逻辑 I-O 错误 pageid 不正确
- 1015. 德才论
- 在java web项目中调用c++的dll程序简单案例