当前位置: 首页 > news >正文

洛谷 P11378 [GESP202412 七级] 燃烧-普及/提高-

题目描述

小杨有一棵包含 nnn 个节点的树,其中节点的编号从 111nnn。节点 iii 的权值为 aia_iai

小杨可以选择一个初始节点引燃,每个燃烧的节点会将其相邻节点中权值严格小于自身权值的在节点间扩散直到不会有新的节点被引燃。

小杨想知道在合理选择初始节点的情况下,最多可以燃烧多少个节点。

输入格式

第一行包含一个正整数 nnn,表示节点数量。

第二行包含 nnn 个正整数 a1,a2,…,ana_1,a_2,\dots,a_na1,a2,,an,代表节点权值。

之后 n−1n-1n1 行,每行包含两个正整数 ui,viu_i,v_iui,vi,代表存在一条连接节点 uiu_iuiviv_ivi 的边。

输出格式

输出一个正整数,代表最多燃烧的节点个数。

输入输出样例 #1

输入 #1

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

输出 #1

3

说明/提示

子任务编号数据点占比nnn
11120%20\%20%≤10\leq 1010
22220%20\%20%≤100\leq 100100
33360%60\%60%≤105\leq 10^5105

对于全部数据,保证有 1≤n≤1051\leq n\leq 10^51n1051≤ai≤1061\leq a_i\leq 10^61ai106

solution

选择一个点作为根节点进行 dfs,记录所有子树的最多引燃节点数
再搜索一次,考虑到从父节点那一端可引燃的数量

代码

#include <iostream>
#include "bit"
#include "vector"
#include "unordered_set"
#include "set"
#include "queue"
#include "stack"
#include "algorithm"
#include "bitset"
#include "cstring"using namespace std;int n, a[100001], f[100001], x, y, Max;
vector<int> e[100001];/** 方法二:记忆化搜索,搜索不包含父节点的数量*/
int dfs(int u, int p) {int s = 1;for (int v: e[u]) {if (v != p) {if (a[v] < a[u]) {s += dfs(v, u);} else {dfs(v, u);}}}return f[u] = s;
}// 在搜索一次
void dfs2(int u, int p) {if (a[u] > a[p]) f[u] += f[p];for (int v: e[u]) {if (v != p) {dfs2(v, u);}}Max = max(Max, f[u]);
}int main() {cin >> n;for (int i = 1; i <= n; i++) {cin >> a[i];}for (int i = 1; i < n; i++) {cin >> x >> y;e[x].push_back(y);e[y].push_back(x);}dfs(1, 0);dfs2(1, 0);cout << Max;
}

结果

在这里插入图片描述

http://www.dtcms.com/a/295197.html

相关文章:

  • fdbus4.2 timer的使用
  • AI时代,我的编程工作搭子
  • ospf单区域实验
  • Windows批量工具,直接起飞!
  • 外部存档(External Archive)机制
  • MNIST 手写数字识别模型分析
  • 无人机电池通讯接口应用:CANFD工业级芯片的选型与技术要点
  • 跨境支付入门~国际支付结算(稳定币)
  • 事务的特性 - ACID
  • 游戏装备被盗,运营商赔不赔
  • 算法牢笼与思想飞地:在人工智能时代守卫灵魂的疆域
  • gig-gitignore工具实战开发(二):设计多源模板系统
  • Python--Tkinter--标准 GUI 工具包
  • 常用的Typescript特性
  • Python进阶知识之pandas库
  • 【OpenCV篇】OpenCV——02day.图像预处理(1)
  • LLM中词嵌入向量的 模长 和 角度 的物理含义
  • 基于 GitLab 实践敏捷开发
  • ElasticSearch基础数据查询和管理详解
  • Android网络请求,Retrofit,OKHttp学习
  • SAP调用外部API
  • MST技术加持,简化桌面多屏布局
  • 题解:P9468 [EGOI 2023] Candy / 糖果
  • GNSS差分定位系统之一:差分定位中的单差和双差
  • Java【代码 03】未分页数据根据参数进行后期分页(粘贴可用)
  • git 修改最近一次 commit 信息
  • Prometheus介绍
  • 部署zabbix
  • Git版本控制系统
  • 什么是MySQL 视图