码迷,mamicode.com
首页 > 其他好文 > 详细

ftgjrtj

时间:2020-11-02 10:09:59      阅读:47      评论:0      收藏:0      [点我收藏+]

标签: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;
}

 

ftgjrtj

标签:rgba   break   pac   c++   ++   cout   cin   class   bsp   

原文地址:https://www.cnblogs.com/org0/p/13836671.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!