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

最大子树和--树形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.dtcms.com/a/199306.html

相关文章:

  • Linux基础第四天
  • fastadmin 数据导出,设置excel行高和限制图片大小
  • 在Excel中使用函数公式时,常见错误对应不同的典型问题
  • Python学习笔记--使用Django操作mysql
  • 一键启动多个 Chrome 实例并自动清理的 Bash 脚本分享!
  • AWS EKS IP 耗尽:原因、解决方案和最佳实践
  • 【AWS入门】AWS身份验证和访问管理(IAM)
  • 【Windows系统】向量数据库Milvus安装教程
  • Win10 安装单机版ES(elasticsearch),整合IK分词器和安装Kibana
  • 鸿蒙PC操作系统:从Linux到自研微内核的蜕变
  • 手机内存不够,哪些文件可以删?
  • 小红书的视频怎么保存没有水印(方法分享)
  • linux——mysql故障排查与生产环境优化
  • Python打卡DAY30
  • MySQL函数触发:函数处理与触发器自动化应用
  • Node 服务监控及通过钉钉推送告警提醒
  • 实战教程:影刀RPA采集闲鱼商品并分享钉钉
  • Linux内核深入学习(4)——内核常见的数据结构2——红黑树
  • 深入解析Spring Boot与Kafka集成:构建高效消息驱动微服务
  • 常见排序算法整理(Java实现)
  • 开发 前端搭建npm v11.4.0 is known not to run on Node.js v14.18.1.
  • 星际争霸小程序:用Java实现策略模式的星际大战
  • 使用 ABP vNext 集成 MinIO 构建高可用 BLOB 存储服务
  • NLP学习路线图(一): 线性代数(矩阵运算、特征值分解等)
  • OpenCV CUDA 模块中的矩阵算术运算-----在频域(复数频谱)中执行逐元素乘法并缩放的函数mulAndScaleSpectrums()
  • 51单片机点亮一个LED介绍
  • 在CMake中利用vcpkg配置C/C++环境
  • visual studio code中的插件都是怎么开发的?用的什么编程语言?
  • 谷歌 NotebookLM 即将推出 Sparks 视频概览:Gemini 与 Deep Research 加持,可生成 1 - 3 分钟 AI 视频
  • 从零开始学习three.js(21):一文详解three.js中的矩阵Matrix和向量Vector