POJ 2342 Anniversary party 树形DP
来源:互联网 发布:日本 9月进出口数据 编辑:程序博客网 时间:2024/06/13 18:17
题目链接:http://poj.org/problem?id=2342
入门题:
dp[rt][0] = sum{dp[ch][0] + dp[ch][1]}
dp[rt][1] = sum{dp[ch][0]}
代码:
#include <cstdio>#include <iostream>#include <cstring>#define sf scanf#define pf printfusing namespace std;const int maxn = 6000 + 5;int dp[maxn][2],value[maxn];struct Edge{ int v,pre;}e[maxn << 1];int head[maxn];int tot;void init_edge(){ memset(head,-1,sizeof(head)); tot = 0;}void addEdge(int u,int v){ e[tot].v = v; e[tot].pre = head[u]; head[u] = tot++;}int DPS(int rt,int st){ if(~dp[rt][st]) return dp[rt][st]; int& ans = dp[rt][st]; ans = 0; if(st){ ans = value[rt]; for(int i = head[rt];~i;i = e[i].pre){ ans += DPS(e[i].v,0); } } else{ for(int i = head[rt];~i;i = e[i].pre){ ans += max(DPS(e[i].v,0),DPS(e[i].v,1)); } } return ans;}void init(){ memset(dp,-1,sizeof(dp));}int ins[maxn];int main(){ int n,u,v; while( sf("%d",&n) ){ if(!n){ sf("%d",&n); break; } for(int i = 1;i <= n;++i) sf("%d",&value[i]); init_edge(); init(); for(int i = 1;i < n;++i){ sf("%d %d",&v,&u); addEdge(u,v); ins[v]++; } for(int i = 1;i <= n;++i){ if(!ins[i]){ pf("%d\n",max(DPS(i,0),DPS(i,1))); break; } } }}
0 0
- poj 2342 Anniversary party 树形DP
- poj 2342 Anniversary Party(树形dp)
- POJ 2342 Anniversary party(树形DP)
- poj 2342 Anniversary party 简单树形dp
- poj 2342 Anniversary party,树形DP easy
- POJ 2342 Anniversary Party ( 树形DP )
- poj 2342Anniversary party(树形dp)
- poj 2342 Anniversary party 简单树形dp
- POJ - 2342 Anniversary party 树形DP
- poj 2342 Anniversary party(树形dp)
- POJ-2342::Anniversary party-树形DP
- POJ 2342Anniversary party(树形DP)
- POJ 2342 Anniversary party (树形dp)
- poj 2342 Anniversary party(树形dp)
- POJ 2342 Anniversary party【树形DP】
- POJ 2342 - Anniversary party (树形dp)
- POJ 2342 Anniversary party(树形dp)
- poj 2342 Anniversary party (树形DP)
- CSS display:inline-block
- 机器学习算法的联系和区别
- Mysql数据库的优化技术(1)
- 一键Bat启动开发时所需要的软件
- MFC 总结(2)
- POJ 2342 Anniversary party 树形DP
- 机器学习十大算法
- git 远程版本库,github提供服务原理,git自动更新发送邮件
- Android-activity堆栈及管理
- oracle job
- 判断一个点是否在多边形区域内
- cookie机制和session机制
- hive 中 Order by, Sort by ,Dristribute by,Cluster By 的作用和用法
- 机器学习的策略