当前位置: 首页 > 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;}

相关文章:

  • 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实现)
  • 专访《风雪夜归人》导演闫锐:在舞台上表现什么是真正的活着
  • 俄美元首通话超2小时,普京称愿与乌方共同起草和平备忘录
  • 中国预警机雷达有多强?可数百公里外看清足球轨迹
  • 【社论】进一步拧紧过紧日子的制度螺栓
  • 瑞幸首度牵手成都国际非遗节,用一杯饮品将非遗之美推向全国
  • 取得金奖西瓜品种独家使用权的上海金山,为何要到异地“试种”?