求助!!!!!!!!!!!!!!!!
查看原帖
求助!!!!!!!!!!!!!!!!
756543
ganyihan楼主2025/8/4 14:22

第二个MLE,其他AC

#include<bits/stdc++.h>
using namespace std;
const int N=1e3+10;
int n,r[N],l,k,f[N],b[N],a[N][N],s[N][2],t;
void dfs(int u){
	s[u][1]=r[u];
	for(int i=0;i<b[u];++i){
		int son=a[u][i];
		dfs(son);
		s[u][1]+=s[son][0];
		s[u][0]+=max(s[son][0],s[son][1]);
	}
}int main(){
	cin>>n;
	for(int i=1;i<=n;++i)cin>>r[i];
	for(int i=1;i<n;++i){
		cin>>l>>k;
		f[l]=k;
		a[k][b[k]++]=l;		
	}for(int i=1;i<=n;++i)
		if(!f[i]){
			t=i;
			dfs(i);
			break; 
		}
	cout<<max(s[t][0],s[t][1]);
	return 0;
} 
2025/8/4 14:22
加载中...