标签:rgba break pac c++ ++ cout cin class bsp
#include<bits/stdc++.h> using namespace std; int a[6007],h[6007],ne[6007],to[6007],fx[6007][2]; bool p[6007]; void f(int x) { if(h[x]==0) { fx[x][1]=a[x]; fx[x][0]=0; return ; } int s1=0,s2=a[x]; int r1,r2; for(int i=h[x];i;i=ne[i]) { f(to[i]); fx[x][1]+=fx[to[i]][0]; fx[x][0]+=max(fx[to[i]][0],fx[to[i]][1]); } fx[x][1]+=a[x]; return ; } int main() { memset(p,0,sizeof(p)); int n; cin>>n; for(int i=1;i<=n;++i) scanf("%d",&a[i]); int x,y; int tt=0; for(int i=1;i<=n-1;++i) { scanf("%d%d",&x,&y); p[x]=1; ++tt; ne[tt]=h[y]; h[y]=tt; to[tt]=x; } int k; for(k=1;k<=n;++k) if(p[k]==0) break; //cout<<k; f(k); cout<<max(fx[k][1],fx[k][0]); return 0; }
标签:rgba break pac c++ ++ cout cin class bsp
原文地址:https://www.cnblogs.com/org0/p/13836671.html