[洛谷P1352][codevs1380]没有上司的舞会
题目大意:某大学有N个职员,编号为1~N。他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数Ri,但如果某个职员的上司来参加舞会了,那么这个职员就不肯参加舞会了。求最大的快乐指数。
解题思路:经典的树形dp。我们设f[i][0]表示i参加时能获得的最大快乐指数,f[i][1]表示i不参加时能获得的最大快乐指数。
那么如果i参加,则他的下属一定不能参加,就在他参加获得的快乐指数上加上他所有下属不参加时的最大快乐指数(f[p][1],p是i的某个下属)
如果i不参加,他的下属可以参加也可以不参加,那么对于每个下属,我们把他参加和不参加时的快乐指数的较大值($max(f[p][1],f[p][0])$)加到f[i][1]中即可。
最后的答案为$max(f[root][1],f[root][0])$,root表示“校长”。
时间复杂度$O(n)$。
C++ Code:
#include<cstdio>
#include"cctype"
#include<vector>
using namespace std;
#define C c=getchar()
int boss[6050],a[6050],n,f[6050][2];
//f[i][0]表示i参加时能获得的最大快乐指数,f[i][1]表示i不参加时能获得的最大快乐指数。
vector<int> e[6050];
inline int readint(){
char C;
bool b=false;
while(!isdigit(c))b=c=='-',C;
int p=0;
while(isdigit(c))
p=(p<<3)+(p<<1)+c-'0',C;
if(b)p=-p;
return p;
}
void dp(int t){
f[t][0]=a[t];
f[t][1]=0;
for(int i=0;i<e[t].size();++i){
int to=e[t][i];
dp(to);
f[t][0]+=f[to][1];
f[t][1]+=(f[to][0]<f[to][1])?(f[to][1]):(f[to][0]);
}
}
int main(){
n=readint();
int x,y;
for(int i=1;i<=n;++i)a[i]=readint();
while((x=readint())&&(y=readint())){
boss[x]=y;
e[y].push_back(x);
}
for(int i=1;i<=n;++i)
if(!boss[i]){//寻找“校长”。
dp(i);
printf("%d\n",(f[i][0]<f[i][1])?f[i][1]:f[i][0]);
return 0;
}
}
[洛谷P1352][codevs1380]没有上司的舞会的更多相关文章
- 洛谷P1352 codevs1380 没有上司的舞会——S.B.S.
没有上司的舞会 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description Ural大学有N个职员,编号为1~N.他们有 ...
- 【洛谷P1352】没有上司的舞会
[洛谷P1352]没有上司的舞会 x舷售 锚」翅θ 但是 拙臃 蓄ⅶ榔 暄条熨卫 翘ヴ馇 表现无愧于雪月工作室的核心管理 爸惚扎掬 颇瓶 芟缆肝 貌痉了 洵┭笫装 嗝◇裴腋 褓劂埭 ...
- 洛谷1352 CODEVS1380 没有上司的舞会
洛谷的测试数据貌似有问题,4个点RE不可避 CODEVS可AC —————— 10分钟后追记:在洛谷把数组范围开到10000+就过了 —————— 题目描述 Description Ural大学有N个 ...
- 题解【洛谷P1352】没有上司的舞会
题面 题解 树形\(\text{DP}\)入门题. 我们设\(dp[i][0/1]\)表示第\(i\)个节点选\(/\)不选的最大快乐指数. 状态转移方程: \(dp[i][0]=a[i]+\sum_ ...
- 【洛谷 P1352】没有上司的舞会
树形dp #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ; ...
- [codevs1380]没有上司的舞会([BZOJ2060][Usaco2010 Nov]Visiting Cows 拜访奶牛)
[codevs1380]没有上司的舞会 试题描述 Ural大学有N个职员,编号为1~N.他们有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.每个职员有一个快乐指数.现 ...
- 洛谷 p1352 没有上司的舞会 题解
P1352 没有上司的舞会 题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.现在有个周年庆宴会,宴会每邀请来一个职员 ...
- 洛谷P1352 没有上司的舞会——树形DP
第一次自己写树形DP的题,发个博客纪念`- 题目来源:P1352 没有上司的舞会 题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结 ...
- 洛谷P1352 没有上司的舞会 [2017年5月计划 清北学堂51精英班Day3]
P1352 没有上司的舞会 题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子 结点的直接上司.现在有个周年庆宴会,宴会每邀请来一个职 ...
随机推荐
- 苹果操作系统名称演变史 新名称macOS
历史回顾 发布年代 名称 序号 1994-1999 Classic Mac OS 1-9 2001-2011 Mac OS X 10.0-Lion 2012-2015 OS X Mountain Li ...
- 密信(MeSince),将取代传统电子邮件
电子邮件发展至今已经有几十年的历史,但仍然是最重要的现代互联网应用之一.在全球范围内,每小时发送的非垃圾邮件数量超过30亿封,从工作场景的使用到个人生活,电子邮件都扮演着不可或缺的角色.但是由于明文电 ...
- url中jsessionid的理解
(1) 这是一个保险措施 因为Session默认是需要Cookie支持的 但有些客户浏览器是关闭Cookie的 这个时候就需要在URL中指定服务器上的session标识,也就是5F4771183629 ...
- Methods and systems for sharing common job information
Apparatus and methods are provided for utilizing a plurality of processing units. A method comprises ...
- hello world to php( mac 配置 xmapp virtual host)
一.安装xmapp.安装完以后查看,服务是否都能启动(数据库和server) 二.配置自己的virtualhost 1.系统host文件加入server的域名(在浏览器中输入域名后会先通过 ...
- 外面的wifi非常精彩,外面的wifi非常不安
星期一果然非常忙,看到安卓漏洞还是午休的时候.可能我们都习惯了.我们的信息安全一向难以得到保障.对于我来说,可能都无所谓了.可是作为用户之中的一个,我们也不能太安分,该须要的保障还是得维护. 本来.我 ...
- bzoj1570: [JSOI2008]Blue Mary的旅行(二分+网络流)
1570: [JSOI2008]Blue Mary的旅行 题目:传送门 题解: get到拆点新姿势,还是做题太少了...ORZ 因为每天就只能有一个航班,那就不能直接连了,所以要拆点(然后就被卡住了) ...
- 整数转罗马数字 C++实现 java实现 leetcode系列(十二)
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并 ...
- Linux java9 jshell操作
1.上传 2.解压 配不配环境变量都行 进入到jdk-9.0.4的bin目录下 执行./jshell命令 我第一次出现如下的情况 等了一会没反应就ctrl+z了.然后又重新执行./shell命令 超时 ...
- bower 代理
bower 设置: 修改 .bowerrc 文件(如无则新增): { "proxy": "http://proxy.mysite.com:8080", &quo ...