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

最大子树和--树形dp

1.修--dp[u]+0

不修--dp[u]+sum(dp[v])

状态,边界,转移,父与子,父亲状态会由儿子组成

P1122 最大子树和 - 洛谷

#include<bits/stdc++.h>
using namespace std;
#define N 100011
typedef  long long ll;
int n;
vector<int> mp[16111];
ll w[16111];
bool bo[16111];
ll dp[16111];
ll ma;
void dfs(int u)
{dp[u]=w[u];bo[u]=true;for(int v:mp[u]){if(!bo[v]){dfs(v);dp[u]+=max((ll)0,dp[v]);}}ma=max(ma,dp[u]);
}
int main() {ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>n;for(int i=1;i<=n;i++){cin>>w[i];}ma=w[1];for(int i=1;i<n;i++){int a,b;cin>>a>>b;mp[a].push_back(b);mp[b].push_back(a);}dfs(1);cout<<ma;return 0;}

http://www.xdnf.cn/news/7415.html

相关文章:

  • day30python打卡
  • Rust 学习笔记:关于错误处理的练习题
  • 1-3V升3.2V升压驱动WT7013
  • 反射操作注解的详细说明
  • HTTPS核心机制拆解
  • Windows 如何安装CUDA
  • 【免杀】C2免杀技术(六)进程镂空(傀儡进程)
  • 往现有虚拟环境中增加python3.9.6
  • 万用表如何区分零线、火线、地线
  • 2022年下半年信息系统项目管理师——综合知识真题及答案(3)
  • Pytorch---view()函数
  • 机器人编程基础---C语言中的文件操作
  • SHELL练习题(1-11题)记录(牛客)
  • 力扣HOT100之二叉树:199. 二叉树的右视图
  • LintCode第42题-最大子数组 II-使用前缀和优化 + 动态规划法
  • 【深度学习新浪潮】如何入门人工智能?
  • Python 与 面向对象编程(OOP)
  • CVE-2022-22963源码分析与漏洞复现
  • Java EE初阶——单列模式和阻塞队列
  • 深入解析RAG技术:提升题目解答准确率的利器
  • turf的pointsWithinPolygon排查
  • window xampp apache使用腾讯云ssl证书配置https
  • 算法(最小基因变化+迷宫中离入口最近的出口)
  • C# 枚举 详解
  • linux kernel 编译
  • java的arraylist集合
  • TransactionSynchronizationManager事务同步器的使用
  • 统计客户端使用情况,使用es存储数据,实现去重以及计数
  • 【全解析】EN18031标准下的SCM安全通信机制全解析
  • 质检LIMS系统检测数据可视化大屏 全流程提效 + 合规安全双保障方案