poj2342 没有上司的舞会 树形dp基础
Posted zsben991126
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了poj2342 没有上司的舞会 树形dp基础相关的知识,希望对你有一定的参考价值。
#include<iostream> #include<cstring> #include<cstdio> #include<vector> using namespace std; int n,dp[6050][2],flag[6050],h[6050]; vector<int> son[6050]; void dfs(int u){ dp[u][0]=0; dp[u][1]=h[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(){ while(scanf("%d",&n),n){ memset(h,0,sizeof h); memset(flag,0,sizeof flag); memset(dp,0,sizeof dp); for(int i=1;i<=n;i++)scanf("%d",&h[i]); for(int i=1;i<n;i++){ int u,v; scanf("%d%d",&v,&u); son[u].push_back(v); flag[v]=1; } int root; for(int i=1;i<=n;i++) if(!flag[i]){root=i;break;} dfs(root); printf("%d ",max(dp[root][0],dp[root][1])); } }
以上是关于poj2342 没有上司的舞会 树形dp基础的主要内容,如果未能解决你的问题,请参考以下文章
POJ 2342 Anniversary party 树形DP基础题
POJ 2342 Anniversary party 树形dp入门