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;
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· .NET 进程 stackoverflow异常后,还可以接收 TCP 连接请求吗?
· SQL Server统计信息更新会被阻塞或引起会话阻塞吗?
· 本地部署 DeepSeek:小白也能轻松搞定!
· 传国玉玺易主,ai.com竟然跳转到国产AI
· 自己如何在本地电脑从零搭建DeepSeek!手把手教学,快来看看! (建议收藏)
· 我们是如何解决abp身上的几个痛点
· 如何基于DeepSeek开展AI项目