社区讨论

60pts求调

P1352没有上司的舞会参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@mmaa8nk1
此快照首次捕获于
2026/03/03 15:24
5 天前
此快照最后确认于
2026/03/06 17:40
前天
查看原帖
CPP
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=6e3+10;
vector<int> g[N];
int n,a[N];
int dp[N][2],fa[N];
int u,v;
int k;
void dfs(int x)
{
	dp[x][0]=0,dp[x][1]=a[x];
	for(auto v:g[x])
	{
		dfs(v);
		dp[x][0]+=max(dp[v][0],dp[v][1]);
		dp[x][1]+=dp[v][0];
	}
}
signed main()
{
    cin>>n;
    for(int i=1;i<=n;i++) cin>>a[i];
    for(int i=1;i<n;i++)
    {
    	cin>>u>>v;
    	g[u].push_back(v);
	}
	for(int i=1;i<=n;i++)
	{
		if(!fa[i])
		{
			k=i;
			break;
		}
	}
	dfs(k);
	cout<<max(dp[k][0],dp[k][1]);
    return 0;
}

悬一关

回复

2 条回复,欢迎继续交流。

正在加载回复...