hdu1520 Anniversary party(树型dp)
来源:互联网 发布:外卖哪个软件便宜 编辑:程序博客网 时间:2024/05/16 17:54
hdu1520
题目
有一棵树,每个点有活跃值,告诉你树的结构,选点,有直接父子关系的不能选,求最大的活跃值。
思路
很套路的树型dp,不赘述。
代码
#include <iostream>#include <cstdlib>#include <cstdio>#include <vector>#include <cstring>using namespace std;vector<int> edges[6100];int happy[6100];int dp[6100][2];int vis[6100];int dfs(int root){ vis[root]=1; dp[root][0]=happy[root]; dp[root][1]=0; for(int i=0; i<edges[root].size(); i++) { int son=edges[root][i]; if(!vis[son]) dfs(son); dp[root][0]+=dp[son][1]; dp[root][1]+=max(dp[son][1],dp[son][0]); } return max(dp[root][0],dp[root][1]);}int main(){ int n; while(scanf("%d",&n)!=EOF) { for(int i=1; i<=n; i++) { scanf("%d",&happy[i]); edges[i].clear(); } memset(vis,0,sizeof(vis)); int a,b; while(scanf("%d %d",&a,&b)) { if(a==0&&b==0) break; edges[b].push_back(a); } int ans=-0x3f3f3f3f; for(int i=1; i<=n; i++) { ans=max(ans,dfs(i)); } printf("%d\n",ans); } return 0;}
0 0
- hdu1520 Anniversary party(树型dp)
- hdu1520 Anniversary party 树形dp
- HDU1520:Anniversary party(树形DP)
- hdu1520 Anniversary party(树形DP)
- hdu1520 Anniversary party (树形dp)
- hdu1520 Anniversary party 【树形dp】
- HDU1520 Anniversary party(树形DP)
- 【树形DP】HDU1520-Anniversary party
- HDU1520 Anniversary party 树形DP
- HDU1520 Anniversary party[树形DP]
- HDU1520 Anniversary party 树形DP
- hdu1520-树形dp-Anniversary party
- hdu1520 Anniversary party 树形dp
- HDU1520-Anniversary party(树形dp)
- 树形dp Anniversary party(HDU1520)
- hdu1520 Anniversary party(poj2342,树形dp)
- HDU1520 Anniversary party(树形DP)
- HDU1520 Anniversary party(树形dp)
- Ducci Sequence
- 杭电 1181 变形课
- uva 1225 Dight Counting(数数字)
- maximal-rectangle
- 经典SQL语句大全
- hdu1520 Anniversary party(树型dp)
- ListView与item中控件焦点抢占及错位问题
- Linux系列之安装jdk(二)
- 适应多种数据库的db helper代码
- android build path contains duplicate entry:'src' for project XXX
- POJ 3126 Prime Path(素数打表+bfs)
- Poj 3204 Ikki's Story I - Road Reconstruction【最大流Dinic+可行方案边数统计】
- sql 判断 字符串是否存在于字符串中 字符 出现 次数
- 缩减像素采样 技术