zoukankan      html  css  js  c++  java
  • Evanyou Blog 彩带

      题目传送门

    没有上司的舞会

    题目描述 Description

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

    输入描述 Input Description

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

    输出描述 Output Description

    输出最大的快乐指数。

    样例输入 Sample Input

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

    样例输出 Sample Output

    5

    数据范围及提示 Data Size & Hint

    各个测试点1s


      分析:

      一道树形DP的入门题。DP最蒻的我来考古。

      以根节点开始向下遍历整棵树,因为每个人都只有选或不选两种状态,且选了直属上司的话下属就不能选,根据这个思想来DP。

      Code:

    //It is made by HolseLee on 24th July 2018
    //CodeVS 1380
    #include<bits/stdc++.h>
    using namespace std;
    
    const int N=6007;
    vector<int> son[N];
    int n,a[N],dp[N][2];
    bool fa[N];
    
    inline int Max(int x,int y)
    {
        return x>y?x:y;
    }
    
    inline void dfs(int u)
    {
        dp[u][0]=0;
        dp[u][1]=a[u];
        for(int i=0;i<son[u].size();i++){
            int v=son[u][i];
            dfs(v);
            dp[u][0]+=Max(dp[v][0],dp[v][1]);
            dp[u][1]+=dp[v][0];
        }
    }
    
    int main()
    {
        ios::sync_with_stdio(false);
        cin>>n;
        for(int i=1;i<=n;i++)cin>>a[i];
        int x,y;
        for(int i=1;i<=n;i++){
            cin>>x>>y;
            if(i==n)break;
            fa[x]=1;
            son[y].push_back(x);
        }
        for(int i=1;i<=n;i++)
            if(!fa[i]){
                dfs(i);cout<<Max(dp[i][0],dp[i][1])<<"
    ";break;}
        return 0;
    }
  • 相关阅读:
    flash中网页跳转总结
    as3自定义事件
    mouseChildren启示
    flash拖动条移出flash无法拖动
    需要一个策略文件,但在加载此媒体时未设置checkPolicyFile标志
    Teach Yourself SQL in 10 Minutes
    电子书本地转换软件 Calibre
    Teach Yourself SQL in 10 Minutes
    Teach Yourself SQL in 10 Minutes
    Teach Yourself SQL in 10 Minutes – Page 31 练习
  • 原文地址:https://www.cnblogs.com/cytus/p/9362344.html
Copyright © 2011-2022 走看看