b_mt_蚂蚁最优战术(简单树形dp)

给一棵树,每个点有权值,让选择点,要求选择不相邻的点,求使得权值最大,在使得权值最大的情况下,求选择的点中最小的权值最大是多少

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
vector<int> g[N];
int a[N], s[N][2], m[N][2];
void dfs(int u, int fa) {
    s[u][1]=a[u];
    m[u][1]=a[u];
    for (int v : g[u]) {
        if (v==fa) continue;
        dfs(v,u);
        s[u][1]+=s[v][0];
        m[u][1]=min(a[u], m[v][0]);
        s[u][0]+=s[v][1];
        m[u][0]=m[v][1];
    }
}
int main() {
    std::ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
    int n,k; cin>>n>>k;
    for (int i=1; i<=n; i++) cin>>a[i];
    for (int i=0; i<k; i++) {
        int u,v; cin>>u>>v;
        g[u].push_back(v);
        g[v].push_back(u);
    }
    dfs(1,0);
    if (s[1][1] > s[1][0]) cout<<s[1][1]<<' '<<m[1][1];
    else cout<<s[1][0]<<' '<<m[1][0];
    return 0;
}
posted @   童年の波鞋  阅读(61)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· .NET 进程 stackoverflow异常后,还可以接收 TCP 连接请求吗?
· SQL Server统计信息更新会被阻塞或引起会话阻塞吗?
阅读排行:
· 本地部署 DeepSeek:小白也能轻松搞定!
· 传国玉玺易主,ai.com竟然跳转到国产AI
· 自己如何在本地电脑从零搭建DeepSeek!手把手教学,快来看看! (建议收藏)
· 我们是如何解决abp身上的几个痛点
· 如何基于DeepSeek开展AI项目
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.