哪里错了呀
查看原帖
哪里错了呀
126837
Qijiadong楼主2021/6/11 20:33
#include<bits/stdc++.h>
using namespace std;
int n,i,x,y,a[6005][2],t,f[6005];
void aaaa(int rt)
{
	for(i=1;i<=n;i++)
	{
		if(f[i]==rt)
		{
			aaaa(i);
			a[rt][0]+=max(a[i][0],a[i][1]);
			a[rt][1]+=a[i][0];
		}
	}
	return;
}
int main()
{
	cin>>n;
	for(i=1;i<=n;i++)
	{
		cin>>a[i][1];
	}
	for(i=1;i<=n-1;i++)
	{
		cin>>x>>y;
		f[x]=y;
	}
	cin>>x>>y;
	for(i=1;i<=n;i++)
	{
		if(!f[i])
		{
			t=i;
		}
	}
	aaaa(t);
	cout<<max(a[t][0],a[t][1]);
}
2021/6/11 20:33
加载中...