建议加强数据
查看原帖
建议加强数据
774862
Pwtking楼主2023/3/8 17:33

样例都没过,提交拿到90pts

#include <bits/stdc++.h>
#include <random>
using namespace std;
#define ll long long
#define inf 0x7fffffff
ll f[16010][3],a[16010],n;
vector<ll> G[16010];
inline void dfs(ll u,ll fa) {
	for (ll i=0;i<G[u].size();++i) {
		ll v=G[u][i];
		if (v==fa) continue;
		dfs(v,u);
		f[u][1]+=max(f[v][1],f[v][0]);
	}
}
signed main () {
	std::ios::sync_with_stdio(false);
	cin>>n;
	for (ll i=1;i<=n;++i) {
		cin>>a[i];
		f[i][1]=a[i];
	}
	for (ll i=1;i<n;++i) {
		ll k,b;
		cin>>k>>b;
		G[k].push_back(b);
		G[b].push_back(k);
	}
	dfs(1,0);
	cout<<f[1][1];
	return 0;
}
2023/3/8 17:33
加载中...