当前位置: 首页 > article >正文

【生命之树】

题目

思路

求联通区域中的最大和值

代码

#include <bits/stdc++.h>
using namespace std;
const int N = 1e5+10, M = N << 1;
const int null = -0x3f3f3f3f;
long long w[N];
int h[N], e[M], ne[M], idx;
void add(int a, int b)  // 添加一条边a->b
{
    e[idx] = b, ne[idx] = h[a], h[a] = idx ++ ;
}
int n;
long long ans = null;
long long dfs(int f, int u)
{
    long long bsx = 0;  //branches sum max
    
    for(int k = h[u]; ~k; k = ne[k])
    {
        int j = e[k];
        if(j == f) continue;
        long long d = dfs(u, j);
        if(d > 0) bsx += d;
    }
    ans = max(ans, bsx+w[u]);
    return bsx+w[u];
}
int main()
{
    cin >> n;
    for(int i = 1; i <= n; i++)
    {
        cin >> w[i];
    }
    memset(h, -1, sizeof h);
    for(int i = 0; i < n-1; i ++)
    {
        int a, b;
        cin >> a >> b;
        add(a, b); add(b, a);
    }
    dfs(0, 1);
    cout << ans;
    return 0;
}

注意

题目说节点绝对值不大于10^{6},说明 bsx 和 函数返回值会爆 int,同时由于使用了 max 函数,所以w[ ]  和 ans 也需要开 long long


http://www.kler.cn/a/281854.html

相关文章:

  • 【WPF】Prism库学习(一)
  • 鸿蒙北向开发环境安装指南
  • 台式电脑没有声音怎么办?台式电脑没有声音解决详解
  • Liunx-Ubuntu22.04.1系统下配置Anaconda+pycharm+pytorch-gpu环境配置
  • 大语言模型通用能力排行榜(2024年11月8日更新)
  • 贪心算法入门(三)
  • 开环响应(频率响应+相移响应)+闭环响应(负反馈对带宽的影响+增益-带宽积)+正反馈与稳定性/补偿(选学)
  • DENCLUE算法原理及Python实践
  • 字典查找对应输入的字符
  • 【TVM 教程】构建图卷积网络
  • 【自动化】考试答题自动化完成答案,如何实现100%正确呢
  • JS中【querySelectorAll】详解
  • AI模型:全能与专精的较量与未来潜力探讨
  • DP2.0和HDMI2.1的计算
  • 宠物浮毛怎么去掉比较高效?必看榜五星好评浮毛空气净化器
  • 【Hot100】LeetCode—22. 括号生成
  • 开发体育直播平台:如何全面防护,抵御网络攻击?
  • 【PostgreSQL教程】PostgreSQL 高级篇之 视图
  • WPF- vs中的WPF应用项目模板 如何自己实现
  • 关于 etcd lease,以下说法正确的是?
  • golang学习笔记——grom连接mysql
  • C++day2
  • 【计算机网络】名词解释--网络专有名词详解
  • CRMEB 开源商城系统研究报告
  • Pytorch构建网络模型结构都有哪些方式
  • 买了服务器后如何正确挂载数据盘|什么是系统盘,什么是数据盘