洛谷 P1352 没有上司的舞会

洛谷 P1352 没有上司的舞会

Description

  • 某大学有N个职员,编号为1~N。他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数Ri,但是呢,如果某个职员的上司来参加舞会了,那么这个职员就无论如何也不肯来参加舞会了。所以,请你编程计算,邀请哪些职员可以使快乐指数最大,求最大的快乐指数。

Input

  • 第一行一个整数N。(1<=N<=6000)

    接下来N行,第i+1行表示i号职员的快乐指数Ri。(-128<=Ri<=127)

    接下来N-1行,每行输入一对整数L,K。表示K是L的直接上司。

    最后一行输入0 0

Output

  • 输出最大的快乐指数。

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
#include <iostream>
#include <cstdio>
#define N 6005
using namespace std;struct E {int next, to;} e[N];
int n, m, num, root;
int a[N], in[N], h[N];
int dp[N][2];void add(int u, int v)
{e[++num].next = h[u];e[num].to = v;h[u] = num;
}void dfs(int x, int fat)
{for(int i = h[x]; i != 0; i = e[i].next)if(e[i].to != fat) dfs(e[i].to, x);for(int i = h[x]; i != 0; i = e[i].next)if(e[i].to != fat)dp[x][1] += dp[e[i].to][0],dp[x][0] += max(dp[e[i].to][0], dp[e[i].to][1]);dp[x][1] += a[x];
}int main()
{cin >> n;for(int i = 1; i <= n; i++) cin >> a[i];for(int i = 1; i < n; i++){int u, v;   cin >> u >> v;add(v, u), in[u]++;}for(int i = 1; i <= n; i++)if(!in[i]) {root = i; break;}dfs(root, 0);cout << max(dp[root][0], dp[root][1]);return 0;
}

转载于:https://www.cnblogs.com/BigYellowDog/p/11217063.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/248421.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

单机简单搭建一个kafka集群(没有进行内核参数和JVM的调优)

1.JDK安装 在我的部署单节点kafka的博客里有相关的方法。&#xff08;https://www.cnblogs.com/ToBeExpert/p/9789486.html &#xff09;zookeeper和kafka的压缩包下载地址也在单节点部署的这篇博客里。 1.zookeeper集群的搭建 将zookeeper.tar.gz解压为三个目录&#xff0c;例…

[翻译]三张卡片帮你记住TDD的基本原则

原文地址&#xff1a;http://blog.briandicroce.com/2008/03/14/three-index-cards-to-easily-remember-the-essence-of-test-driven-development/ 当我浏览ObjectMentor的博客的时候&#xff0c;其中一篇Tim Ottinger的“TDD on Three Index Cards”引起了我的注意。他回忆了他…

异常 try catch finally return 执行关系 MD

Markdown版本笔记我的GitHub首页我的博客我的微信我的邮箱MyAndroidBlogsbaiqiantaobaiqiantaobqt20094baiqiantaosina.com异常 try catch finally return 执行关系 MD 目录 目录探讨finally语句的执行与return的关系探讨finally语句的执行与return的关系 Java异常捕获机制try.…

Java数据结构之线性表(2)

从这里开始将要进行Java数据结构的相关讲解&#xff0c;Are you ready&#xff1f;Lets go~~ java中的数据结构模型可以分为一下几部分: 1.线性结构 2.树形结构 3.图形或者网状结构 接下来的几张&#xff0c;我们将会分别讲解这几种数据结构&#xff0c;主要也是通过Java代码的…

凉哥核心圈程序员必备十大图书推荐(一)

写在前面 凉哥核心圈程序员必备十大图书推荐&#xff08;一&#xff09;&#xff0c;各位伙伴应该一目了然了哈&#xff0c;没错凉哥准备出一系列图书推荐的文章&#xff0c;其实很多朋友在私下问凉哥除了大学的课程外自己要不要读一些技术类的书籍呢&#xff0c;答案当时要的…

了解大数据的特点、来源与数据呈现方式

本次作业来源于&#xff1a;https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2639 1.浏览2019春节各种大数据分析报告&#xff0c;例如&#xff1a; 这世间&#xff0c;再无第二个国家有能力承载如此庞大的人流量。http://www.sohu.com/a/290025769_313993春节人口迁…

MYSQL中只知表名查询属于哪个SCHEMA

只知道表名XXX查该表属于哪个schema、以及该表有哪些列等信息SELECT * from information_schema.columns WHERE table_name xxx; 只知道列名XXX查哪个schema有该列、以及有列名为XXX的表有哪些等SELECT * from information_schema.columns WHERE column_name XXX;参考链接&am…

ACCESS SQL语法参考

ACCESS SQL语法参考 一. 基础概念 可以使用的数据类型如下&#xff1a; 1. TEXT&#xff1a;文本型&#xff08;指定长度时&#xff09;&#xff0c;备注型&#xff08;不指定长度时&#xff09;&#xff1b; 2. CHAR&#xff0c;NCHAR&#xff0c;VARCHAR&#xff0…

强大而优雅,API 研发管理 EOLINKER 新版正式发布!

EOLINKER 于2019年3月3日正式发布新版本&#xff01;该版本大幅强化各个产品的功能、着重优化了全站的用户交互体验&#xff0c;并且EOLINKER AMS 产品正式更名为 EOLINKER API Studio ——API 工作室&#xff0c;旨在为您提供API文档管理、自动化测试以及开发协作等全方位服务…

关注视聊效果!中星微摄像头对比测试

不知不觉中&#xff0c;一种小型的数码产品不声不响的潜入了大多数网民的家庭——摄像头&#xff0c;这种令网络世界变得活泼、生动、直观的小东西给我们带来了一阵视频的风&#xff0c;它的背后隐藏着什么&#xff1f;让我们揭开背后的秘密&#xff0c;撩起那视频的面纱。 现今…

MarkDown语法-使用博客园的markDown编辑

一个是一个大标题 两个是一个小标题 是三级标题 最高阶标题加下划线 高阶标题加双下划线 是二阶标题二阶标题区块引用blockquotes 换行也是没有关系的啦啦啦啦啦啦啦啦绿绿绿绿绿绿绿绿绿绿绿绿绿绿绿绿绿绿绿绿绿绿啦啦啦啦啦啦啦啦绿绿了 区块引用可以嵌套 嵌套 标题区块引用…

版本控制--搭建 GitLab 服务器

GitLab 简介 GitLab 是利用 Ruby On Rails 一个开源的版本管理系统&#xff0c;实现一个自托管的 Git 项目仓库&#xff0c;可通过 Web 界面进行访问公开的或者私人项目。它拥有与 GitHub 类似的功能&#xff0c;能够浏览源代码&#xff0c;管理缺陷和注释。可以管理团队对仓库…

MATLAB 与 Excel 接口

MATLAB 与 Excel 接口MATLAB 与 Excel 有两种接口方式&#xff1a;一种是通过 MATLAB 提供的 Excel 生成器&#xff0c;生成220 MATLAB 实用教程DLL 组件和 VBA 代码&#xff0c;实现 Excel 对 MATLAB 的调用&#xff1b;另一种是利用 MATLAB 提供的 Excellink 插件&#xff0c…

计算 1+2!+3!+4!+...20!=?

package algs.factorial;import java.math.BigInteger;/*** Author: areful* Date: 2019/3/6* 计算 sum(n!), n1,2, ... 20*/ public class NFactorial {public static void main(String[] args) {System.out.println(calcFactorial0(3));System.out.println(calcFactorial1(3)…

转大学毕业后拉开差距的原因

原文 有人工作&#xff0c;有人继续上学&#xff0c;大家千万不要错过这篇文章&#xff0c;能看到这篇文章也是一种幸运&#xff0c;真的受益匪浅&#xff0c;对我有很大启迪&#xff0c;这篇文章将会改变我的一生&#xff0c;真的太好了&#xff0c;希望与有缘人分享&…

用户态和内核态的理解和区别

1、linux进程有4GB地址空间&#xff0c;如图所示&#xff1a;3G-4G大部分是共享的&#xff0c;是内核态的地址空间。这里存放整个内核的代码和所有的内核模块以及内核所维护的数据。2、特权级的概念&#xff1a;对于任何操作系统来说&#xff0c;创建一个进程是核心功能。创建进…

面经-多益网络

面试时间&#xff1a;2019.07.22 QQ视频面试 面试岗位&#xff1a;人工智能及大数据/一面 面试时长&#xff1a;35分钟 面试内容&#xff1a; 自我介绍项目-视频召回实际场景题-怎么通过数学公式查找相似的数学公式对加班怎么看对比实习公司的特点主动询问落地方向面试评价&…

区块链基础语言(三)——Go语言开发工具

一、在Windows系统安装Goland 1.1 下载 官网地址&#xff1a;https://www.jetbrains.com/go/download/#sectionwindows 1.2 安装 a. 双击“goland-2018.1.5.exe”&#xff0c;单击“运行”&#xff0c;如图1所示&#xff1b; <图1> b. 如图2所示&#xff0c;单击“next”…

最小的K个数

最小的K个数 题目描述 输入n个整数&#xff0c;找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字&#xff0c;则最小的4个数字是1,2,3,4,。 未完, 待续, 好像设计堆排序 先排序在遍历, 此处使用插曲排序 class Solution { public:void insertSort(vector<int> &am…

准备重新开始写了

工作很忙,而且前一段时间项目组由于方向和人员调整一直很动荡,所以就没有心情和时间来整理技术.准备重新开张了,好好写,争取每个月出一到两篇说得过去的文章.转载于:https://www.cnblogs.com/sun/archive/2008/06/12/1218220.html