HDU 1520 Anniversary party 我的第一个 树形DP
来源:互联网 发布:java string compare 编辑:程序博客网 时间:2024/06/07 23:00
题意很简单,就是顶头上司不能和下属一起去 Party
然后每个人都有一个价值,取价值最优的参加 Party 的方案
#include<iostream>#include<cstdio>#include<vector>#include<cmath>#include<cstring>using namespace std;const int MAX = 1e5;vector<int> mp[MAX];int val[MAX], n, m;int dp[MAX][2], vis[MAX];void init(){ memset(dp, 0, sizeof(dp)); memset(vis, 0, sizeof(vis)); for(int i = 1; i <= n; ++i) mp[i].clear();}void dp_func(int rt){ if(vis[rt]) return; vis[rt] = 1; int sz = mp[rt].size(); for(int i = 0; i < sz; ++i){ int now = mp[rt][i]; if(!vis[now]){ dp_func(now); dp[rt][1] += dp[now][0]; dp[rt][0] += max(dp[now][1], dp[now][0]); } } dp[rt][1] += val[rt];}int main(){ int s, t; while(~scanf("%d", &n)){ init(); for(int i = 1; i <= n; ++i) scanf("%d", val + i); while(scanf("%d%d", &s, &t) && s + t){ mp[s].push_back(t); mp[t].push_back(s); } dp_func(1); printf("%d\n", max(dp[1][0], dp[1][1])); } return 0;}
0 0
- 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)
- 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)
- Dedecms标签静态化的设置
- 2014年4月操作系统份额:Windows XP仍然在26%以上,Linux微涨
- JQuery 节点遍历 实现代码。
- 数据结构 第四季
- 读取硬盘序列号
- HDU 1520 Anniversary party 我的第一个 树形DP
- 完了
- 用C++操作Excel
- C++ vector 之 erase 多个元素的常用方法
- mysql主从库配置
- iOS7—Day by day
- objective-c posing
- Struts+Spring+Hibernate内存泄漏查找与处理
- python 字符串处理