zoukankan      html  css  js  c++  java
  • poj 2342树形dp板子题1

    http://poj.org/problem?id=2342

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<queue>
    #include<vector>
    using namespace std;
    inline int read(){
        int sum=0,x=1;
        char ch=getchar();
        while(ch<'0'||ch>'9'){
            if(ch=='-')
                x=0;
            ch=getchar();
        }
        while(ch>='0'&&ch<='9'){
            sum=(sum<<1)+(sum<<3)+(ch^48),ch=getchar();
        }
        return x?sum:-sum;
    }
    inline void write(int x){
        if(x<0)
            putchar('-'),x=-x;
        if(x>9)
            write(x/10);
        putchar(x%10+'0');
    }
    int mi(int x,int y){
        return x<y?x:y;
    }
    int ma(int x,int y){
        return x>y?x:y;
    }
    const int M=6e3+3;
    vector<int>g[M];
    int f[M],dp[M][2];
    
    void dfs(int u){
        for(int i=0;i<g[u].size();i++){
            int v=g[u][i];
            dfs(v);
            dp[u][0]+=ma(dp[v][0],dp[v][1]);
            dp[u][1]+=dp[v][0];
        }
    }
    int main(){
        int n=read();
        
        for(int i=1;i<=n;i++){
            dp[i][1]=read();
        }
        while(true){
            int x=read(),y=read();
            if(!x&&!y)
                break;
            g[y].push_back(x);
            f[x]=y;
        }
        int root=1;
        while(f[root]!=0)
            root=f[root];
        dfs(root);
        write(ma(dp[root][0],dp[root][1]));
        return 0;
    }
    View Code
  • 相关阅读:
    内存警告
    倒影效果
    设计模式六大原则
    设计模式
    GCD线程
    字符串颜色值转换
    下划线按钮
    电池栏上弹窗
    项目发布相关
    UINib xib加载
  • 原文地址:https://www.cnblogs.com/starve/p/10961302.html
Copyright © 2011-2022 走看看