洛谷2633 王后万岁

来源:互联网 发布:美国失业金数据公布 编辑:程序博客网 时间:2024/04/29 10:13

题目:http://www.luogu.org/problem/show?pid=2633
分析:DP
代码:

#include <cstdio>#include <algorithm>#include <cstring>#include <vector>using namespace std;const int Tmax=16005;int n,data[Tmax],ans=-2147483640;vector<int> G[Tmax];int dp(int x,int fa){    int i,len=G[x].size(),tmp,sum=data[x],to;    for(i=0;i<len;i++)    {        to=G[x][i];        if(to==fa) continue;        tmp=dp(to,x);        if(tmp>0) sum+=tmp;    }    ans=max(ans,sum);    return sum;}int main(){    int i,u,v;    scanf("%d",&n);    for(i=1;i<=n;i++)      scanf("%d",&data[i]);    for(i=1;i<n;i++)    {        scanf("%d%d",&u,&v);        G[u].push_back(v);        G[v].push_back(u);    }    ans=max(ans,dp(1,0));    printf("%d",ans);    return 0;}
0 0
原创粉丝点击