AcWing 285. 没有上司的舞会
//f[u][0]是所有以u为根的子树中选择,并且不选u这个点的方案
//f[u][1]是所有以u为根的子树中选择,并且 选u这个点的方案
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int N = ;
int n;
int h[N], e[N], ne[N], idx;
int happy[N];
int f[N][];//两种状态
bool has_fa[N];
void add(int a, int b) {
e[idx] = b, ne[idx] = h[a], h[a] = idx ++ ;
}
void dfs(int u) {
f[u][] = happy[u];//选择这个点
for (int i = h[u]; i!=-; i = ne[i]) {//枚举所有儿子
int j = e[i];
dfs(j);
f[u][] += f[j][];
f[u][] += max(f[j][], f[j][]);
}
}
int main() {
scanf("%d", &n);
for (int i = ; i <= n; i ++ ) scanf("%d", &happy[i]);
memset(h, -, sizeof h);
for (int i = ; i < n - ; i ++ ) {
int a, b;
scanf("%d%d", &a, &b);
add(b, a);
has_fa[a] = true;//表示有爹,不是根节点
}
int root = ;
while (has_fa[root]) root ++ ;//找根节点
dfs(root);
printf("%d\n", max(f[root][], f[root][]));
return ;
}
AcWing 285. 没有上司的舞会的更多相关文章
- AcWing 285. 没有上司的舞会(树形dp入门)
Ural大学有N名职员,编号为1~N. 他们的关系就像一棵以校长为根的树,父节点就是子节点的直接上司. 每个职员有一个快乐指数,用整数 HiHi 给出,其中 1≤i≤N1≤i≤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舷售 锚」翅θ 但是 拙臃 蓄ⅶ榔 暄条熨卫 翘ヴ馇 表现无愧于雪月工作室的核心管理 爸惚扎掬 颇瓶 芟缆肝 貌痉了 洵┭笫装 嗝◇裴腋 褓劂埭 ...
- Codevs1380没有上司的舞会_KEY
没有上司的舞会 1380 没有上司的舞会 时间限制: 1 s 空间限制: 128000 KB 题目描述 Description Ural大学有N个职员,编号为1~N.他们有从属关系,也就是说他们的关系 ...
- 『没有上司的舞会 树形DP』
树形DP入门 有些时候,我们需要在树形结构上进行动态规划来求解最优解. 例如,给定一颗\(N\)个节点的树(通常是无根树,即有\(N-1\)条无向边),我们可以选择任意节点作为根节点从而定义出每一颗子 ...
- 没有上司的舞会|codevs1380|luoguP1352|树形DP|Elena
没有上司的舞会 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description Ural大学有N个职员,编号为1~N.他们有从属关系 ...
- 洛谷 p1352 没有上司的舞会 题解
P1352 没有上司的舞会 题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.现在有个周年庆宴会,宴会每邀请来一个职员 ...
- wikioi 1380 没有上司的舞会 树形dp
1380 没有上司的舞会 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description Ural大学有N个职员,编号为1~N.他 ...
随机推荐
- Windows10开发环境搭建
开发环境基本介绍:(是以刚重装过系统的电脑进行介绍的,电脑刚装完的操作见其他的文档) Eclipse环境搭建: 1. 下载JDK (本例以JDK13.0.1为例) 2. 配置环境变量(主要是JAVA_ ...
- P1527 [国家集训队]矩阵乘法 [整体二分]
权值排序,整体二分,没了. // by Isaunoya #include <bits/stdc++.h> using namespace std; #define rep(i, x, y ...
- JavaScript实现动态打字效果
废话不多说,上代码~~ <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...
- tcp_demo
代码讲解: server import socket def main(): # 创建tcp服务器套接字 tcp_server = socket.socket(socket.AF_INET, sock ...
- git pull报错you do not have permission to pull from the repository
you do not have permission to pull from the repository解决方法 使用git进行项目的版本管理,换了台电脑,配置了账号和邮箱后,pull一个项目 ...
- redis测试题
1.什么是Redis? Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存. ...
- 【笔记0-开篇】面试官系统精讲Java源码及大厂真题
背景 开始阅读 Java 源码的契机,还是在第一年换工作的时候,被大厂的技术面虐的体无完肤,后来总结大厂的面试套路,发现很喜欢问 Java 底层实现,即 Java 源码,于是我花了半年时间,啃下了 J ...
- linux常见目录介绍
/bin:/usr/bin: 可执行二进制文件目录,如常用命令ls.cat /boot: 放置linux启动时用到的一些文件,建议分区的时候独立分区 /dev: 存在linux系统下的设备文件,访问该 ...
- PHP代码安全杂谈
虽然PHP是世界上最好的语言,但是也有一些因为弱类型语言的安全性问题出现.WordPress历史上就出现过由于PHP本身的缺陷而造成的一些安全性问题,如CVE-2014-0166 中的cookie伪造 ...
- malloc函数动态分配内存
#include <stdio.h> #include <stdlib.h> //malloc free #include <windows.h> //sleep ...