zoukankan      html  css  js  c++  java
  • Tyvj1052(树形DP)

    P1052 没有上司的舞会
    时间: 1000ms / 空间: 131072KiB / Java类名: Main

    描述

    Ural大学有N个职员,编号为1~N。他们有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。每个职员有一个快乐指数。现在有个周年庆宴会,要求与会职员的快乐指数最大。但是,没有职员愿和直接上司一起与会。

    输入格式

    第一行一个整数N。(1<=N<=6000)
    接下来N行,第i+1行表示i号职员的快乐指数Ri。(-128<=Ri<=127)
    接下来N-1行,每行输入一对整数L,K。表示K是L的直接上司。
    最后一行输入0,0。

    输出格式

    输出最大的快乐指数。

    测试样例1

    输入









    1 3 
    2 3 
    6 4 
    7 4 
    4 5 
    3 5 
    0 0

    输出

    5
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    const int MAXN=100005;
    struct Edge{
        int to,next;
    }es[MAXN];
    int n;
    int w[MAXN];
    int dp[MAXN][2];//dp[u][0]表示不选u结点的快乐指数最大值,dp[u][1]表示选上 
    int head[MAXN],tot;
    void addedge(int u,int v)
    {
        es[tot].to=v;
        es[tot].next=head[u];
        head[u]=tot++;
    }
    
    void dfs(int u)
    {
        dp[u][0]=0;
        dp[u][1]=w[u];
        int max0=0;
        int max1=0;
        for(int i=head[u];i!=-1;i=es[i].next)
        {
            int v=es[i].to;
            dfs(v);
            max0+=max(dp[v][0],dp[v][1]);
            max1+=dp[v][0];
        }
        dp[u][0]+=max0;
        dp[u][1]+=max1;
    }
    int deg[MAXN];
    int main()
    {
        memset(head,-1,sizeof(head));
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
            scanf("%d",&w[i]);
        for(int i=1;i<=n-1;i++)
        {
            int u,v;
            scanf("%d%d",&u,&v);
            addedge(v,u);
            deg[u]++;
        }  
        scanf("%*d%*d");
        for(int i=1;i<=n;i++)
        {
            if(deg[i]==0)
            {
                dfs(i);
                printf("%d
    ",max(dp[i][0],dp[i][1]));
                break;
            }
        }
        return 0;
    }
  • 相关阅读:
    I.MX6 sdio 设备注册及识别
    linux串口查看命令
    连词
    相形-声似词汇
    replace A with B是用A代替B还是用B代替A?
    无监督、弱监督、半监督、强化、多示例学习是什么
    JS散度(Jensen-Shannon)
    embedding是什么
    httpclient: 设置请求的超时时间,连接超时时间等
    httpclient工具使用(org.apache.httpcomponents.httpclient)
  • 原文地址:https://www.cnblogs.com/program-ccc/p/5221905.html
Copyright © 2011-2022 走看看