HDU 1520 Anniversary party树状DP
来源:互联网 发布:淘宝颜色选择图片尺寸 编辑:程序博客网 时间:2024/03/28 20:13
最简单的树状DP了。。
这题的特殊性可以建成无向图,以任意节点为根节点。。
#include<stdio.h>#include<string.h>#include<math.h>#include<stdlib.h>#include<algorithm>#include<vector>using namespace std;#define maxn 6010int val[maxn];int dp[maxn][2];bool vis[maxn];vector<int> vec[maxn];void init(){ memset(vis,0,sizeof(vis)); for(int i=0;i<maxn;i++) vec[i].clear();}void dfs(int rt){ vis[rt]=1; int sz=vec[rt].size(); if(sz==1&&rt!=1) return; for(int i=0;i<sz;i++) { int tmp=vec[rt][i]; if(!vis[tmp]) { dfs(tmp); dp[rt][1]+=dp[tmp][0]; dp[rt][0]+=max(dp[tmp][0],dp[tmp][1]); } }}int main(){ freopen("in.txt","r",stdin); int n; while(scanf("%d",&n)==1) { init(); int i; for(i=1;i<=n;i++) scanf("%d",&val[i]); for(i=1;i<=n;i++) { dp[i][0]=0; dp[i][1]=val[i]; } int u,v; while(scanf("%d%d",&u,&v)==2&&(u||v)) { vec[u].push_back(v); vec[v].push_back(u); } dfs(1); printf("%d\n",max(dp[1][0],dp[1][1])); } return 0;}
- 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入门)
- 树状dp Anniversary party
- 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)
- 【树形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)
- opengl es 纹理压缩
- 各种字符串Hash函数比较
- Vim常用命令
- MapReduce错误任务失败处理
- ASP.Net 上传达文件设置
- HDU 1520 Anniversary party树状DP
- android 使用SurfaceView实现小球高处落下并弹起的效果
- 第三次作业
- linux查看硬件配置的命令
- TCP协议三次握手过程分析
- ViewConfiguration的简单介绍
- android TextView实现跑马灯效果
- WebUtil Useful Reference
- 2312. output “Good!“