zoukankan      html  css  js  c++  java
  • poj 2342 && hdu 1520 树形dp

    题意:有n个人,接下来n行是n个人的价值,再接下来n行给出l,k说的是l的上司是k,这里注意l与k是不能同时出现的

    链接:点我

    dp[i][1] += dp[j][0],

    dp[i][0] += max{dp[j][0],dp[j][1]};其中j为i的孩子节点。

    第二次做感觉已经很水了

     

     1 #include<cstdio>
     2 #include<iostream>
     3 #include<algorithm>
     4 #include<cstring>
     5 #include<cmath>
     6 #include<queue>
     7 #include<map>
     8 using namespace std;
     9 #define MOD 1000000007
    10 const int INF=0x3f3f3f3f;
    11 const double eps=1e-5;
    12 typedef long long ll;
    13 #define cl(a) memset(a,0,sizeof(a))
    14 #define ts printf("*****
    ");
    15 const int MAXN=6010;
    16 int n,m,tt;
    17 int aa[MAXN];
    18 int tot,head[MAXN],dp[MAXN][2],in[MAXN];
    19 struct Edge
    20 {
    21     int to,next;
    22 }edge[MAXN];
    23 void addedge(int u,int v)
    24 {
    25     edge[tot].to=v;
    26     edge[tot].next=head[u];
    27     head[u]=tot++;
    28 }
    29 int dfs(int u)
    30 {
    31     for(int i=head[u];i!=-1;i=edge[i].next)
    32     {
    33         int v=edge[i].to;
    34         dfs(v);
    35         dp[u][1]+=dp[v][0];
    36         dp[u][0]+=max(dp[v][0],dp[v][1]);
    37     }
    38     return max(dp[u][0],dp[u][1]);
    39 }
    40 void init()
    41 {
    42     tot=0;
    43     memset(head,-1,sizeof(head));
    44     cl(dp);
    45     cl(in);
    46 }
    47 int main()
    48 {
    49     int i,j,k;
    50     #ifndef ONLINE_JUDGE
    51     freopen("1.in","r",stdin);
    52     #endif
    53     while(scanf("%d",&n)!=EOF)
    54     {
    55         init();
    56         for(i=1;i<=n;i++)
    57            scanf("%d",&dp[i][1]);
    58         int a,b;
    59         while(scanf("%d%d",&a,&b))
    60         {
    61             if(a==0&&b==0)break;
    62             addedge(b,a);
    63             in[a]++;
    64         }
    65         int ans=0;
    66         for(i=1;i<=n;i++)        //题目的意思就一棵树
    67         {
    68             if(!in[i])  ans=dfs(i);
    69         }
    70         printf("%d
    ",ans);
    71     }
    72 }
  • 相关阅读:
    asp.net 下载文件
    Asp.Net中用iframe解决模态窗口文件下载问题(转)
    如何获取网站的根目录(js或者asp.net)
    java中日期加减计算(转)
    网页颜色选择器
    信仰基督教的好处
    基因芯片数据字段
    独立分量分析(ICA)
    GenePix® Pro 文件格式
    OBO文件中的标签的含义/意思/意义
  • 原文地址:https://www.cnblogs.com/cnblogs321114287/p/4277115.html
Copyright © 2011-2022 走看看