CODEVS1380 没有上司的舞会 (树形DP)
f[i,0] 表示 第i个人不参加舞会
f[i,1] 表示 第i个人参加舞会
f[i,1]=sigma(f[j,0])+v[i] j 为 i 的孩子
f[i,1]=sigma(max(f[j,0],f[j,1])) j 为 i 的孩子
ans=max(f[root,0],f[root,1])
Program CODEVS1380;
type arr=record
u,v,next:longint;
end;
const maxn=;
var eg:array[..maxn] of arr;
last:array[..maxn] of longint;
a:array[..maxn] of longint;
f:array[..maxn,..] of longint;
fa:array[..maxn] of longint;
i,n,u,v,j,root:longint;
procedure add(u,v:longint);
begin
inc(j);
eg[j].u:=u;
eg[j].v:=v;
eg[j].next:=last[u];
last[u]:=j;
end;
function max(a,b:longint):longint;
begin
if a>b then exit(a) else exit(b);
end;
procedure dfs(u:longint);
var i,v,sum1,sum2:longint;
begin
if last[u]=- then
begin
f[u,]:=;
f[u,]:=a[u];
exit;
end;
i:=last[u]; sum1:=; sum2:=;
while i<>- do
begin
v:=eg[i].v;
dfs(v);
sum1:=sum1+f[v,];
sum2:=sum2+max(f[v,],f[v,]);
i:=eg[i].next;
end;
f[u,]:=sum2;
f[u,]:=sum1+a[u];
end;
begin
readln(n);
j:=-;
for i:= to maxn do last[i]:=-;
for i:= to n do readln(a[i]);
readln(v,u);
while (v<>) and (u<>) do
begin
fa[v]:=u;
add(u,v);
readln(v,u);
end;
for i:= to n do if fa[i]= then root:=i;
dfs(root);
writeln(max(f[root,],f[root,]));
end.
CODEVS1380 没有上司的舞会 (树形DP)的更多相关文章
- CodeVS1380 没有上司的舞会 [树形DP]
题目传送门 没有上司的舞会 题目描述 Description Ural大学有N个职员,编号为1~N.他们有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.每个职员有一个 ...
- 【codevs1380】没有上司的舞会 树形dp
题目描述 Ural大学有N个职员,编号为1~N.他们有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.每个职员有一个快乐指数.现在有个周年庆宴会,要求与会职员的快乐指数 ...
- 『没有上司的舞会 树形DP』
树形DP入门 有些时候,我们需要在树形结构上进行动态规划来求解最优解. 例如,给定一颗\(N\)个节点的树(通常是无根树,即有\(N-1\)条无向边),我们可以选择任意节点作为根节点从而定义出每一颗子 ...
- [luogu]P1352 没有上司的舞会[树形DP]
本Lowbee第一次写树形DP啊,弱...一个变量写错半天没看出来...... 题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点 ...
- 洛谷P1352 没有上司的舞会——树形DP
第一次自己写树形DP的题,发个博客纪念`- 题目来源:P1352 没有上司的舞会 题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结 ...
- 没有上司的舞会 树形dp
题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数Ri, ...
- P1352 没有上司的舞会——树形DP入门
P1352 没有上司的舞会 题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.现在有个周年庆宴会,宴会每邀请来一个职员 ...
- P1352 没有上司的舞会[树形dp]
题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数Ri, ...
- P1352 没有上司的舞会&&树形DP入门
https://www.luogu.com.cn/problem/P1352 题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的 ...
- 洛谷 P1352 没有上司的舞会 树形DP板子
luogu传送门 题目描述: 某大学有n个职员,编号为1~n. 他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司. 现在有个周年庆宴会,宴会每邀请来一个职员都会 ...
随机推荐
- hdu5878 I Count Two Three(二分+ 打表)
题目链接:hdu5878 I Count Two Three 题意:给出一个整数n, 找出一个大于等于n的最小整数m, 使得m可以表示为2^a * 3^b * 5^c * 7^d. 题解:打表预处 ...
- java操作字符串,重点是记录一次使用replaceAll对字符串的操作
符串常用操作(String类) 字符串查找 String提供了两种查找字符串的方法,即indexOf与lastIndexOf方法. 1.indexOf(String s) 该方法用于返回参数字符串s在 ...
- backbonejs中的集合篇(一)
一:集合概念 集合是多个模型,如果把模型model理解为表结构中的行,那么集合collection就是一张表,由多个行组成.我们经常需要用集合来组织和管理多个模型. 二:创建集合 1:扩展Backbo ...
- 平衡查找树之B树
转自:http://www.cnblogs.com/yangecnu/p/Introduce-B-Tree-and-B-Plus-Tree.html 定义 B 树可以看作是对2-3查找树的一种扩展,即 ...
- vim 代码
vim函数跳转 时间:2014-05-07 14:02:12 阅读:40 ...
- Spark(3) - External Data Source
Introduction Spark provides a unified runtime for big data. HDFS, which is Hadoop's filesystem, is t ...
- [转]Windows的窗口刷新机制
1.Windows的窗口刷新管理 窗口句柄(HWND)都是由操作系统内核管理的,系统内部有一个z-order序列,记录着当前窗口从屏幕底部(假象的从屏幕到眼睛的方向),到屏幕最高层的一个窗口句柄的排序 ...
- Split的应用
public string qu(string ss) { string s1 = "" ; string[] s = ss.Split(); for (int i = 0; i ...
- linux :TOP命令及参数解析
第二行 分别显示:total进程总数. running正在运行的进程数. sleeping睡眠的进程数.stopped停止的进程数. zombie僵尸进程数. 第三行 分别显示: %us 用户空间占用 ...
- dancing link模板
#include<cstdio> #include<iostream> #include<cstring> #include<algorithm> #i ...