hdu 1520 Anniversary party 树状dp
来源:互联网 发布:期货交易软件使用 编辑:程序博客网 时间:2024/04/27 16:52
题意:在一个大学庆典中,从n个职工中选择一些人来参加派对,这n个人上司与下属关系形成一颗树,每个人都有一个对应的funny值,为了使派对更加有趣,要求上司与其直接下属不能同时参加派对,并使派对的funny值最大.
还以为是图,问题想复杂了
#include<cstdio>#include<cstring>#include<vector>#define Max(a,b) a>b?a:busing namespace std;const int maxn = 6010;vector<int> g[maxn];int fa[maxn],vis[maxn];int dp[maxn][2];int n;void tree_dp(int u){vis[u]=1;for(int i=0;i<g[u].size();i++){int v = g[u][i];if(!vis[v]){tree_dp(v);dp[u][0]+=Max(dp[v][0],dp[v][1]);dp[u][1]+=dp[v][0];}}}int main(){int a,b;while(scanf("%d",&n)!=EOF){memset(dp,0,sizeof(dp));memset(fa,0,sizeof(fa));memset(vis,0,sizeof(vis));for(int i=1;i<=n;i++){scanf("%d",&dp[i][1]);g[i].clear();}int root,ans;while(scanf("%d%d",&a,&b)&&(a!=0||b!=0)){fa[a]=b;g[b].push_back(a);root=b;}while(fa[root])root=fa[root];tree_dp(root);ans=Max(dp[root][0],dp[root][1]);printf("%d\n",ans);}}
0 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)
- php用wkhtmltopdf把html生成pdf
- spring知识三-----SpEL&生命周期&bean配置方式
- Android/Java每日积累[3/13-]
- SSMybatis整合 --详细解读Mybatis对oracle数据库进行增删改查(一)
- 桶排序
- hdu 1520 Anniversary party 树状dp
- Java生涯——Java基础---正则表达式
- 【工具類】Activity管理類,隨時隨地退出程序
- 单链表逆序
- 搜索-Solr学习笔记
- 王道计算机网络--3.1数据链路层的功能...3.4
- 数码管递加递减带消隐
- Java生涯——高新技术---枚举及部分JDK1.5新特性
- 《mysql必知必会》学习