lanqiao oj 131 生命之树

简介: lanqiao oj 131 生命之树

用户登录

#include<iostream>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std ;
typedef long long LL ;
const int N = 1e5 +10 ;
LL w[N] ;
LL n ;
vector<LL> tree[N] ;//利用邻接表存储树
LL res ;
LL dp[N] ;//以i为结尾的子树的最大分数值
 
void dfs(LL u , LL fa ){//利用深搜遍历这一棵子树
  for(int i = 0 ; i < tree[u].size() ; i++ ){//遍历每一个树的子树
    LL son = tree[u][i] ;//取当前这个点作为根节点
    if(son != fa){
      dfs(son,u) ;
      if(dp[son]>0) dp[u] += dp[son] ;
    }
  }
  res = max(res , dp[u]) ;//对每一个子树取最大值
}
int main(){
  cin >> n ; 
  for(int i = 1 ; i <= n ; i ++) cin >> w[i] ,dp[i] = w[i];
  for(int i = 1 ; i < n ; i ++ ){
    int u , v ; cin >> u >> v ;
    tree[u].push_back(v) ; 
    tree[v].push_back(u) ;
  }
  dfs(1,-1) ;// 任意选一个节点开始搜索
  cout << res << endl ;
}
目录
相关文章
|
2月前
lanqiao OJ 1505 剪邮票
lanqiao OJ 1505 剪邮票
30 0
|
2月前
lanqiao OJ 182 小朋友崇拜圈
lanqiao OJ 182 小朋友崇拜圈
32 2
|
2月前
lanqiao OJ 131 生命之树
lanqiao OJ 131 生命之树
36 0
|
2月前
lanqiao oj 1135 蓝桥幼儿园(并查集)
lanqiao oj 1135 蓝桥幼儿园(并查集)
33 0
|
2月前
lanqiao oj 1121 蓝桥公园(floyd)
lanqiao oj 1121 蓝桥公园(floyd)
44 0
|
2月前
lanqiao OJ 2097 青蛙过河
lanqiao OJ 2097 青蛙过河
15 0
|
6月前
【洛谷 P1781】宇宙总统 题解(高精度+结构体排序)
在宇宙总统竞选中,需计算得到最高票者。程序接收$n$($1\leq n\leq 20$)个候选人及其票数,使用自定义比较器`cmp`对结构体数组`vote`按票数长度排序。样例输入5人,票数分别为98765、12365、87954、1022356、985678,输出显示编号为4的候选人(票数1022356)获胜。代码中,结构体`S`包含候选人ID和票数字符串,通过`sort`函数及`cmp`函数按票数长度降序排列,输出首位即为胜者。
40 0
《蓝桥杯每日一题》递推·AcWing 3777. 砖块
《蓝桥杯每日一题》递推·AcWing 3777. 砖块
80 0
|
人工智能 BI
《蓝桥杯每日一题》并查集·AcWing1249. 亲戚
《蓝桥杯每日一题》并查集·AcWing1249. 亲戚
58 0
|
算法 测试技术
蓝桥杯2022年第十三届决赛真题-卡牌——二分法
蓝桥杯2022年第十三届决赛真题-卡牌——二分法
129 0