CodeVS1380 没有上司的舞会 解题报告【树形DP】
来源:互联网 发布:安知玉如意txt久久 编辑:程序博客网 时间:2024/05/16 08:52
题目描述 Description
Ural大学有N个职员,编号为1~N。他们有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。每个职员有一个快乐指数。现在有个周年庆宴会,要求与会职员的快乐指数最大。但是,没有职员愿和直接上司一起与会。
输入描述 Input Description
第一行一个整数N。(1<=N<=6000)
接下来N行,第i+1行表示i号职员的快乐指数Ri。(-128<=Ri<=127)
接下来N-1行,每行输入一对整数L,K。表示K是L的直接上司。
最后一行输入0,0。
输出描述 Output Description
输出最大的快乐指数。
样例输入 Sample Input
7
1
1
1
1
1
1
1
1 3
2 3
6 4
7 4
4 5
3 5
0 0
样例输出 Sample Output
5
解题报告
我们令dp[i][0/1]表示这个职员是否参加了舞会;
根据题意,dp[u][1]只能用dp[v][0](v是u的儿子)转移而来,则有:
dp[u][1]=sigma(dp[v][0]);
dp[u][0]可以根据dp[v][0/1]两种状态转移而来;亦即:
dp[u][0]=sigma(max(dp[v][1],dp[v][0]))
代码如下:
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int N=6000;struct edge{ int v,next;}ed[4*N+5];int head[N+5],num;int n,w[N+5];int dp[N+5][5],flag[N+5];void build(int u,int v){ ed[++num].v=v; ed[num].next=head[u]; head[u]=num;}void dfs(int u){ for(int i=head[u];i!=-1;i=ed[i].next) { int v=ed[i].v; dfs(v); dp[u][0]+=max(dp[v][1],dp[v][0]); dp[u][1]+=dp[v][0]; }}int main(){ memset(head,-1,sizeof(head)); scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&w[i]),dp[i][1]=w[i]; for(int i=1;i<=n-1;i++) { int u,v; scanf("%d%d",&v,&u); build(u,v); flag[v]=1; } for(int i=1;i<=n;i++) if(!flag[i]) { dfs(i); printf("%d",max(dp[i][0],dp[i][1])); return 0; }}
阅读全文
0 0
- CodeVS1380 没有上司的舞会 解题报告【树形DP】
- 【codevs1380】没有上司的舞会 树形dp经典题目
- codevs1380 没有上司的舞会 树上dp
- Codevs1380 没有上司的舞会
- codevs1380 没有上司的舞会
- codevs1380没有上司的舞会
- codevs1380 没有上司的舞会
- codevs 1380 没有上司的舞会 DP 解题报告
- 【CodeVS1380】【Tyvj1052】没有上司的舞会
- 洛谷1352 CODEVS1380 没有上司的舞会
- 没有上司的舞会 Codevs1380&POj2342&Hdu1520
- 【洛谷 P1352】【codevs1380】没有上司的舞会
- Codevs1380没有上司的舞会_KEY
- 没有上司的舞会--经典树形DP
- 树形DP 没有上司的舞会
- 树形dp 没有上司的舞会
- 1380 没有上司的舞会 树形dp
- 树形DP Tyvj1052 没有上司的舞会
- 【python-tips】非root权限安装pip、其他包
- 关于在maven中 遇到maven不加载的问题
- 使用 Sonar 进行代码质量管理
- J2SE知识点总结 1
- 我对CV模型的理解1
- CodeVS1380 没有上司的舞会 解题报告【树形DP】
- SpringMVC如何处理JSON数据和运行流程
- 利用cxf3.14+spring4.2发布webservice
- SDIO总线协议
- 使用nginx和uWSGI搭建Django网站
- P1308 统计单词数
- [kuangbin带你飞]专题一 简单搜索 A
- Libvirt命令参数详解
- 设计模式的征途—20.备忘录(Memento)模式