没有上司的舞会 codevs 1380
上树DP,记忆化搜索。

本题老师讲的方法是直接树形DP,但是由于我对树并不够了解,什么dfs也不想尝试(虽然感觉自己可以搞),于是搞了个结构体存点以及该点的信息,用f[i][j]作为记忆化数组。以后最好能用结构体就用结构体。有条理,集中,而且对于转java有点帮助(还不知道转不转)。

代码:
#include <cstdio>
#include <algorithm>
#define N 6003
using namespace std; struct Node{
int dad,son[N],R,top;
}a[N];
int x,y,n,root;
int f[N][];
int ffind(int p,int flag)
{
if(f[p][flag]) return f[p][flag];
int ans=;
if(flag)
{
ans=a[p].R;
for(int i=;i<=a[p].top;i++)
{
ans+=ffind(a[p].son[i],);
}
}
else
{
for(int i=;i<=a[p].top;i++)
{
ans+=max(ffind(a[p].son[i],),ffind(a[p].son[i],));
}
}
f[p][flag]=ans;
return ans;
} int main()
{
scanf ("%d",&n);
for(int i=;i<=n;i++)
scanf ("%d",&a[i].R);
for(int i=;i<n;i++)
{
scanf ("%d%d",&x,&y);
a[x].dad=y;
a[y].son[++a[y].top]=x;
}
for(root=;root<=n;root++)
{
if(a[root].dad==) break;
} int ans=max(ffind(root,),ffind(root,));
/*printf("\n");
for(int i=1;i<=n;i++)
{
printf("%d %d\n",ffind(i,0),ffind(i,1));
}*/
printf("%d",ans);
return ;
}
没有上司的舞会 codevs 1380的更多相关文章
- 树形DP--codevs 1380 没有上司的舞会
codevs 1380 没有上司的舞会 变式题目:给定一棵树每个点有一个点权,求一个独立集使得点权和最大,树上的独立集指的是选取树上的点,使尽量多的点不直接相连 时间限制: 1 s 空间限制: 1 ...
- wikioi 1380 没有上司的舞会 树形dp
1380 没有上司的舞会 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description Ural大学有N个职员,编号为1~N.他 ...
- CodeVS1380 没有上司的舞会 [树形DP]
题目传送门 没有上司的舞会 题目描述 Description Ural大学有N个职员,编号为1~N.他们有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.每个职员有一个 ...
- codevs 1380/HDU 1520 树形dp
1380 没有上司的舞会 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 回到问题 题目描述 Description Ural大学有N个职员 ...
- Codevs1380没有上司的舞会_KEY
没有上司的舞会 1380 没有上司的舞会 时间限制: 1 s 空间限制: 128000 KB 题目描述 Description Ural大学有N个职员,编号为1~N.他们有从属关系,也就是说他们的关系 ...
- 洛谷P1352 codevs1380 没有上司的舞会——S.B.S.
没有上司的舞会 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description Ural大学有N个职员,编号为1~N.他们有 ...
- [codevs1380]没有上司的舞会([BZOJ2060][Usaco2010 Nov]Visiting Cows 拜访奶牛)
[codevs1380]没有上司的舞会 试题描述 Ural大学有N个职员,编号为1~N.他们有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.每个职员有一个快乐指数.现 ...
- 【洛谷P1352】没有上司的舞会
[洛谷P1352]没有上司的舞会 x舷售 锚」翅θ 但是 拙臃 蓄ⅶ榔 暄条熨卫 翘ヴ馇 表现无愧于雪月工作室的核心管理 爸惚扎掬 颇瓶 芟缆肝 貌痉了 洵┭笫装 嗝◇裴腋 褓劂埭 ...
- 『没有上司的舞会 树形DP』
树形DP入门 有些时候,我们需要在树形结构上进行动态规划来求解最优解. 例如,给定一颗\(N\)个节点的树(通常是无根树,即有\(N-1\)条无向边),我们可以选择任意节点作为根节点从而定义出每一颗子 ...
随机推荐
- js关闭当前页
/*关闭当前页*/ function closeCurrentPage() { var userAgent = navigator.userAgent; if (userAgent.indexOf(& ...
- C#Note13:如何在C#中调用python
前言 IronPython 是一种在 .NET 及 Mono上的 Python 实现,由微软的 Jim Hugunin(同时也是 Jython 创造者) 所发起,是一个开源的项目,基于微软的 DLR ...
- java学习之—排序
package test3; public class Sort{ /** * 冒泡排序 * @param array */ public void bubbleSort(int[] array) { ...
- checkbox选中事件的正确写法
判断选中CHECKBOX事件 网上各种扯淡 搞死我了..加上总觉得smarty引擎和JSJQ有很多冲突.. $("#id").is(":checked");
- redis 中主从、哨兵和集群分片模式这三个有什么区别 ?
集群分片 比如 5主5从,也就是说 数据过来之后会均匀的分配到5台服务器上面,5台服务器上面的数据是不同的,但是每个服务器都有一个从服务器,上面的数据跟这一台主服务器的数据是一样的: 也就是说,对于这 ...
- 一个好玩的小制作,以及在<a/>中的标签href="javascript:;"/href="javascript:void(0);"/href="javascript:"的用法
一:一个小图标的制作 我们在支付宝.微信等某些地方上传文件时会遇到以下的图标,但是这样的图标其实可以用<a/>标签以及css样式完成, 具体代码如下: <!DOCTYPE html& ...
- nargin
nargin 编辑 nargin为“number of input arguments”的缩写. 在matlab中定义一个函数时, 在函数体内部, nargin是用来判断输入变量个数的函数.在matl ...
- codeforces474D
Flowers CodeForces - 474D 话说某个幸运的小伙伴X拿到了kevin女神送的蛋糕,然而他的吃法非常奇特,他独创了两种吃蛋糕的办法:一.一次吃一整个蛋糕:二.一次吃k个蛋糕. 那么 ...
- P1567 气温统计
P1567 题目描述 炎热的夏日,KC 非常的不爽.他宁可忍受北极的寒冷,也不愿忍受厦门的夏天.最近,他开始研究天气的变化.他希望用研究的结果预测未来的天气. 经历千辛万苦,他收集了连续 N(1≤N≤ ...
- C# 电脑上提示未知发布者
参考6楼:http://tieba.baidu.com/p/5767451198?pid=120504172126&cid=120504203560#120504203560 解决方案:mak ...