(AcWing)没有上司的舞会

news2025/1/12 4:05:02

Ural 大学有 NN 名职员,编号为 1∼N。

他们的关系就像一棵以校长为根的树,父节点就是子节点的直接上司。

每个职员有一个快乐指数,用整数 Hi 给出,其中 1≤i≤N。

现在要召开一场周年庆宴会,不过,没有职员愿意和直接上司一起参会。

在满足这个条件的前提下,主办方希望邀请一部分职员参会,使得所有参会职员的快乐指数总和最大,求这个最大值。

输入格式

第一行一个整数 N。

接下来 N 行,第 i 行表示 i 号职员的快乐指数 Hi。

接下来 N−1 行,每行输入一对整数 L,K,表示 K 是 L 的直接上司。(注意一下,后一个数是前一个数的父节点,不要搞反)。

输出格式

输出最大的快乐指数。

数据范围

1≤N≤6000,
−128≤Hi≤127

输入样例:

7
1
1
1
1
1
1
1
1 3
2 3
6 4
7 4
4 5
3 5

输出样例:

5
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;

const int N = 6010;

//定义邻接表
int h[N];   //存储所有的表头
int e[N];   //存所有的边
int ne[N];  //存每个节点的下一个值为多少
int idx;    //表示当前使用到的点,可以理解为该点的坐标

int happy[N];//存储每个员工的开心值
bool father[N];//判断该点有没有父节点

int f[N][2]; 
//f[u][0]:所有从以u为根的子树中选,并且不选u这个点的方案
//f[u][1]:所有从以u为根的子树中选,并且选u这个点的方案

void add(int a,int b) 
{
    e[idx] = b;        //生成一个新节点,代表坐标为idx的点的值为b
    ne[idx] = h[a];    //插入到表头,新节点的下一个节点为原来a这条链表的第一个节点
    h[a] = idx;        //表头的下一个节点为新节点的坐标
    idx++;             //更新坐标idx
}

void dfs(int u)
{
    f[u][1] = happy[u]; //选u这个点的话就要把该点的开心值加上
    for(int i=h[u];i!=-1;i = ne[i]) //遍历u所有的子节点,
    {
        int j = e[i];
        dfs(j);                     //递归处理子节点
        f[u][1] += f[j][0];
        f[u][0] += max(f[j][0],f[j][1]);
    }
}

int main()
{
    int n;
    cin>>n;
    memset(h,-1,sizeof h);   //初始化所有表头,-1表示空表头
    
    for(int i=1;i<=n;i++) cin>>happy[i]; //读入每个员工的开心值
    
    for(int i=1;i<=n-1;i++){   //读入边,k是l的直接上司可以理解为k是l的父节点,l是k的子树
        int l,k;
        cin>>l>>k;
        father[l] = true;   //l已有父节点
        add(k,l);
    }
    
    int root = 1; 
    while(father[root]) root++;
    
    dfs(root);
    
    cout<<max(f[root][0],f[root][1])<<endl;
}

 

 

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

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

相关文章

智能问答FAQ的原始问答数据怎么整理?

整理智能问答FAQ的原始数据是构建一个智能问答系统的重要步骤之一。 如何整理原始问答数据以及如何将其转化为智能问答系统 1. 收集原始数据 收集原始数据是整理智能问答FAQ的第一步。可以从以下途径收集原始数据&#xff1a; 网络搜索&#xff1a;通过搜索引擎、论坛、社交…

小白到运维工程师自学之路 第七十九集 (基于Jenkins自动打包并部署Tomcat环境)2

紧接上文 4、新建Maven项目 clean package -Dmaven.test.skiptrue 用于构建项目并跳过执行测试 拉到最后选择构建后操作 SSH server webExec command scp 192.168.77.18:/root/.jenkins/workspace/probe/psi-probe-web/target/probe.war /usr/local/tomcat/webapps/ /usr/loca…

伦敦银和伦敦金的区别

伦敦银河伦敦金并称贵金属交易市场的双璧&#xff0c;一般投资贵金属的投资者其实不是交易伦敦金就是交易伦敦银。相信经过一段时间的学习和投资&#xff0c;不少投资者都能分辨二者的区别。下面我们就来谈谈伦敦银和伦敦金有什么异同&#xff0c;他们在投资上是否有差别。 交易…

股票预测和使用LSTM(长期-短期-记忆)的预测

一、说明 准确预测股市走势长期以来一直是投资者和交易员难以实现的目标。虽然多年来出现了无数的策略和模型&#xff0c;但有一种方法最近因其能够捕获历史数据中的复杂模式和依赖关系而获得了显着的关注&#xff1a;长短期记忆&#xff08;LSTM&#xff09;。利用深度学习的力…

Android初学之android studio运行java/kotlin程序

第一步骤&#xff1a;File—>New—>New Module&#xff0c;然后弹出一个框&#xff0c;&#xff08;左边&#xff09;选择Java or Kotlin Library&#xff0c;&#xff08;右边&#xff09;编辑自己的图书馆名、包名、类名&#xff0c;选择Java一个语言&#xff0c;然后F…

分享漂亮electerm主题

Electerm 字体建议设置为&#xff1a;Consolas 和 Microsoft YaHei UI 主题配置如下&#xff1a; themeNameNice main-dark#171717 main-light#2E3338 text#ddd text-light#fff text-dark#888 text-disabled#777 primary#CACACA info#FFD166 success#06D6A0 error#EF476F wa…

Unity shader 入门之渲染管线一、总览

如下示意图 应用阶段(ApplicationStage)&#xff1a;准备场景信息&#xff08;视景体&#xff0c;摄像机参数&#xff09;、粗粒度剔除、定义每个模型的渲染命令&#xff08;材质&#xff0c;shader&#xff09;——由开发者定义&#xff0c;不做讨论。几何阶段(GemetryStage)&…

星戈瑞分析FITC-PEG-Alkyne的荧光特性和光谱特性

​欢迎来到星戈瑞荧光stargraydye&#xff01;小编带您盘点&#xff1a; FITC-PEG-Alkyne的荧光特性和光谱特性是对其荧光性能进行分析的方面。以下是FITC-PEG-Alkyne的一些常见荧光特性和光谱特性&#xff1a; **1. 荧光激发波长&#xff1a;**FITC-PEG-Alkyne的荧光激发波长通…

【校招VIP】java语言考点之分代垃圾回收

考点介绍&#xff1a; JVM垃圾回收是面试里绕不开的考点&#xff0c;尤其是分代回收算法&#xff0c;集各种普通垃圾回收于一身&#xff0c;成为垃圾回收之王。但是也造成多个阶段的GC的不同&#xff0c;需要从对象的大小和使用频度等角度去考虑每个阶段的算法选择和造成的问题…

Docker 微服务实战

1. 通过IDEA新建一个普通微服务模块 1.1 建Module docker_boot 1.2 改写pom <?xml version"1.0" encoding"UTF-8"?><project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance&…

OpenHarmony应用实现二维码扫码识别

本文转载自《OpenHarmony应用实现二维码扫码识别》&#xff0c;作者zhushangyuan_ 概念介绍 二维码的应用场景非常广泛&#xff0c;在购物应用中&#xff0c;消费者可以直接扫描商品二维码&#xff0c;浏览并购买产品&#xff0c;如图是购物应用的扫描二维码的页面。 本文就以橘…

TUME儿童毛毯上架亚马逊做CPC认证测试

毛毯(英文Blanket)&#xff0c;是一种常用的床上用品&#xff0c;具有保暖功能&#xff0c;与被子相比较薄。其原料多采用动物纤维&#xff08;如羊毛、马海毛、兔毛、羊绒、驼绒、牦牛绒&#xff09;或腈纶、粘胶纤维等化学纤维&#xff0c;也有的是动物纤维与化纤混纺制成的。…

软件产品需要做测评报告吗?

软件测试报告 毋庸置疑&#xff0c;当然需要&#xff0c;软件测试报告对软件测试过程中的评估、沟通、风险掌控、缺陷修复、发展方向等方面都有着非常重要的作用。接下来我们具体讲讲&#xff1a; 1、软件产品质量的客观评价 &#xff08;1&#xff09;发现软件产品存在的问题…

蓄电池管理,金融公司需警惕!

蓄电池在数据中心的UPS系统中作为备用电源&#xff0c;可以在电力中断时提供持续的电力供应&#xff0c;以保障数据中心的正常运行。 因此&#xff0c;蓄电池监控在数据中心行业具有重要意义。 客户案例 上海某金融服务公司拥有多个数据中心&#xff0c;为其核心业务提供支持。…

vue3 实现按钮权限管理

在做后台管理系统时&#xff0c;经常会有权限管理的功能&#xff0c;这里来记录一下关于按钮权限管理的实现方法 1、自定义指令 v-permission。新建js文件用来写指令代码。 export default function btnPerms(app) {app.directive(permission, {mounted(el, binding) {if (!p…

使用动态IP是否会影响网络

今天我们要谈论的话题是关于动态IP和网络的关系。也许有些小伙伴对这个概念还比较陌生&#xff0c;但别担心&#xff0c;我会简单明了的给你理清楚。让我们一起看看动态IP到底能否影响到网络。 首先&#xff0c;我们先来搞明白什么是动态IP。在互联网世界中&#xff0c;每一个连…

开源容灾备份软件,开源cdp备份软件

数据的安全性和完整性面临着硬件问题、黑客攻击、人为错误等各种威胁。在这种环境下&#xff0c;开源容灾备份软件应运而生&#xff0c;通过提供自动数据备份和恢复&#xff0c;有效地保证了公司的数据安全。 一、开源容灾备份软件的定义和作用 开源容灾备份软件是一种基于开源…

ConfigMap(可变应用配置管理)

实验环境 实验环境&#xff1a; 1、win10,vmwrokstation虚机&#xff1b; 2、k8s集群&#xff1a;3台centos7.6 1810虚机&#xff0c;1个master节点,2个node节点k8s version&#xff1a;v1.22.2containerd://1.5.5实验软件(无) 1 基础知识 1.1 什么是ConfigMap(可变配置管理…

【算法日志】动态规划:动态规划简介及其简单应用(day33)

算法随想录刷题60Day 目录 动态规划简介 动态规划简单应用 斐波那契 爬楼梯 使用最小开支爬楼 动态规划简介 动态规划(Dynamic Programming)是一种解决复杂问题的算法设计思想。它的主要思路是将原问题拆分若干个子问题&#xff0c;并分别求解这些子问题&#xff0c;最后将…

如何轻松打造美容行业预约小程序,无需编程基础

随着移动互联网的快速发展&#xff0c;小程序已经成为了很多企业和个人开展业务的重要阵地。而在美容行业&#xff0c;开发一款美容预约小程序无疑是一个非常有前景的选择。本文将介绍如何使用乔拓云平台&#xff0c;通过简单的几步操作&#xff0c;制作出一款功能强大的美容预…