编译失败,代码如下,请求支援
查看原帖
编译失败,代码如下,请求支援
279095
gargantuar楼主2020/10/21 19:26
#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
int n,dp[6066][2],w[6066],fa[6066],ro[6066],root;
int ls;
void d(int a) {
	for(int i=1; i<=n; i++) {
		if(fa[i]==a) {
			d(i);
			dp[a][0]+=max(dp[i][0],dp[i][1]);
			dp[a][1]+=dp[i][0];
		}
	}
	dp[a][1]+=w[a];
}
int main() {
	cin>>n;
	for(int i=1; i<=n; i++) {
		cin>>w[i];
	}
	for(int i=1; i<n; i++) {
		int ls;
		cin>>ls;
		cin>>fa[ls];
		ro[ls]++;
	}
	for(int i=1; i<=n; i++) {
		if(ro[i]==0) {
			root=i;
			break;
		}
	}
	d(ls);
	cout<<max(dp[root][1],dp[root][0]);
	return 0;
}
2020/10/21 19:26
加载中...