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

P4577 [FJOI2018] 领导集团问题

P4577 [FJOI2018] 领导集团问题

大意

求树上最长不下降子序列。

思路

我们考虑从叶子向根去维护一条最长不上升子序列,我们试试用一个集合去维护目前的所选择的点,如果说我们想要选择更多的点,就需要尽可能使得下面选的点大,我们去寻找第一个大于等于\(now_v\) 的点,如果说找到的这个点要小于当前的 \(now_v\),那么就可以替换掉。

我们采用启发式合并的思想,我们将小集合的向大集合进行插入,直接用 STL 的 multiset 维护,复杂度是 \(\mathcal{O}(n \log^2 n)\)

代码

#include<bits/stdc++.h>
using namespace std;const int MAXN = 2 * 1e5 + 5;
vector<int> G[MAXN];
multiset<int> s[MAXN];
int v[MAXN];void dfs(int u){for(int son : G[u]){dfs(son);if(s[u].size() < s[son].size()){swap(s[u], s[son]);}for(int x : s[son]){s[u].insert(x);}s[son].clear();}auto it = s[u].lower_bound(v[u]);if(it != s[u].begin()){s[u].erase(-- it);}s[u].insert(v[u]);
}int n;int main(){
//	freopen("heap.in", "r", stdin);
//	freopen("heap.out", "w", stdout);ios::sync_with_stdio(0); cin.tie(0);cin >> n;for(int i = 1;i <= n;i ++){cin >> v[i];}for(int i = 2;i <= n;i ++){int f; cin >> f;G[f].push_back(i);}dfs(1);cout << s[1].size() << '\n';return 0;
}
http://www.jsqmd.com/news/395054/

相关文章:

  • 基于springboot的留学信息推荐系统的设计与实现_41yux160
  • 主题019:并行计算与GPU加速
  • 题020:机器学习势函数
  • 2026年论文AI率降低工具选型指南:多模型对比视角下的高效避重解决方案 - 小白条111
  • 【计算机网络】ep2:数据链路层概述
  • C# 判断语句详解与应用
  • 一场春晚三次亮相!魔法原子机器人已经Next Level
  • 题018:量子力学与分子力学耦合(QM/MM)
  • 2026年论文AI润色工具选型指南:多模型对比视角下的专业度与效率决策框架 - 小白条111
  • JavaScript 简介
  • 2024年,提示工程架构师必须掌握的Agentic AI广告工具
  • 主题017:粗粒化分子动力学
  • AIGC 与 AI 配音,引领语音技术新方向
  • 2026年国内硕博论文中文润色AI工具选型指南:多模型对比下的学术性提升解决方案 - 小白条111
  • 主题016:反应路径与过渡态理论
  • AI应用架构师亲测:智能运维平台解决运维成本高的3个有效方案
  • XML Schema 限定 / Facets
  • agent 是可声明实体
  • 2026年海外留学生英文论文润色工具选型指南:多AI协同如何解决单一模型的3大痛点 - 小白条111
  • 63.排序数组中找元素的第一个元素和最后一个元素
  • XHR.readyState详解
  • 区块链+:催生新的应用场景与生产关系变革
  • SQL 主机:深入解析数据库的核心
  • HBase Shell命令大全:从基础操作到高级查询全掌握
  • 6款毕业论文AI写作工具横向测评,帮你精准选择
  • 62 在递增二维数组中查找target,要求用Ologn
  • 毕业论文必备:6个高评分AI写作平台实测分析
  • ECharts 交互组件
  • Tauri 用“系统 WebView + 原生能力”构建更小更快的跨平台应用
  • 6个优质AI写作平台测评,助力毕业论文高效完成