【树形DP】 HDU 1520 Anniversary party
来源:互联网 发布:萤火虫算法 编辑:程序博客网 时间:2024/04/27 18:19
题目链接: HDU 1520 Anniversary party
分析: 虽然看一去是有向边, 但完全可以用无向边去做!
#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int maxn=6010;struct node{ int v; node *next;}tree[maxn<<1],*head[maxn];int n,ptr;bool vis[maxn];int dp[maxn][2],val[maxn];void Init(){ ptr=1; memset(vis,false,sizeof(vis)); memset(dp,0,sizeof(dp)); memset(head,0,sizeof(head));}void AddEdge(int x,int y){ tree[ptr].v=y; tree[ptr].next=head[x]; head[x]=&tree[ptr++];}void DFS(int cnt){ vis[cnt]=true; dp[cnt][1]=val[cnt]; node *p=head[cnt]; while(p!=NULL){ if(vis[p->v]){ p=p->next; continue; } DFS(p->v); dp[cnt][1] += dp[p->v][0]; dp[cnt][0] += max(dp[p->v][1], dp[p->v][0]); p=p->next; }}int main(){ while(~scanf("%d",&n)&&n){ Init(); for(int i=1;i<=n;++i) scanf("%d",val+i); int a,b; while(scanf("%d%d",&a,&b)&&a+b){ AddEdge(a,b); AddEdge(b,a); } DFS(1); printf("%d\n",max(dp[1][0],dp[1][1])); } return 0;}
- 树形DP---hdu 1520 Anniversary Party
- HDU 1520 Anniversary party(树形DP入门)
- HDU 1520 Anniversary party-----树形DP
- hdu(1520) Anniversary party(树形dp)
- 【树形DP】 HDU 1520 Anniversary party
- HDU 1520 Anniversary party(简单树形dp)
- HDU 1520 Anniversary party 树形DP
- HDU 1520 Anniversary party (树形DP)
- hdu 1520 Anniversary party(树形dp)
- HDU 1520 Anniversary party(树形DP)
- hdu 1520 Anniversary party(基本树形DP)
- HDU 1520 Anniversary party (树形dp)
- HDU 1520 Anniversary party / 树形DP水题!!!
- hdu 1520 Anniversary party(树形dp)
- hdu 1520Anniversary party(简单树形dp)
- 【树形DP】hdu 1520 Anniversary party
- HDU 1520 - Anniversary party (树形DP)
- poj2342|hdu 1520 Anniversary party 树形dp
- python bsddb
- RHEL5安装网卡驱动
- 均值滤波
- Iphone之选择图片滤镜功能的实现
- Silverlight插件错误消息
- 【树形DP】 HDU 1520 Anniversary party
- mingw编译zlib
- 索引的查询路径6
- 你需要知道的各种浏览器及其内核
- JAVA值传参和引用传参
- 开关电源电路模型
- android 应用导入第三方jar、so文件
- 区分Activity的四种加载模式
- 索引的查询路径7