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

洛谷 P4577

题面太屎了。

给定一棵大小为 \(n\) 的树,每个节点有权值 \(a_i\),问最多能选出多少个节点,使得若 \(v \in subtree_u\),则 \(a_v \ge a_u\) 成立。

\(n \le 2 \times 10^5\)

这个问题丢到序列上就是 \(LIS\) 了,现在被放到了树上。

二分的做法不太好做,合并子树不好搞。考虑用树状数组/线段树优化的解法。

\(dp_{u, i}\) 表示 \(u\) 的子树内选出的集合中 \(a_{\min} = i\) 的答案。合并子树可以使用线段树合并。具体地, 若 \(u, v\) 合并,那么 \(dp_{v, j}(j \ge i)\) 是可以贡献到 \(dp_{u, i}\) 的,所以合并时要记录一个 \(pu, pv\) 分别表示一个子树对另一个子树的贡献,不能合并完再算贡献,也不能预先算好(因为不知道下面合并时用的是线段树 \(u\) 中的节点还是 \(v\) 中的)。可以看代码。

时间复杂度:\(O(n \log V)\)

思路还是比较自然,就是合并时容易搞错顺序。

写的时候一直尝试合并儿子前或者后再加上贡献,发现都有问题。只能把贡献下传下去算

void update(int x, int k) {if (x) tr[x] += k, tag[x] += k;
}int Merge(int u, int v, int l, int r, int pu, int pv) { // 区间 [l, r],合并 u, v。// 若 u, v 皆空显然是 0if (!u) {update(v, pv); return v;}if (!v) {update(u, pu); return u;}if (l == r) { // 叶子节点。tr[u] = max(pv, tr[u]) + max(pu, tr[v]); // max(pv, tr[u]) 表示 u 这边选择一个 [l, V] 的,另一边同理。最小值不是 u 也没关系,反正也会算到。return u;}int mid = (l + r) >> 1; Pushdown(u), Pushdown(v);son[u][0] = Merge(son[u][0], son[v][0], l, mid, max(pu, tr[son[v][1]]), max(pv, tr[son[u][1]])); // 更新 pu, pv。右边的可以向左边的贡献。son[u][1] = Merge(son[u][1], son[v][1], mid + 1, r, pu, pv);tr[u] = max(tr[son[u][0]], tr[son[u][1]]);return u;
}

似乎把状态设计成最小值 \(\ge i\) 更好搞些,但无所谓了。

http://www.jsqmd.com/news/31560/

相关文章:

  • C++算法贪心例题讲解 - 实践
  • AI元人文:理论框架、僵局本质与文明演化的系统性构想
  • [linux-mint] Surface Pro4 安装linux驱动
  • [B] AGC VP 记录
  • 2025年河南工业大学2025新生周赛(2)
  • Atcoder [ARC161C] Dyed by Majority (Odd Tree) 题解 [ 绿 ] [ 树的遍历 ] [ 构造 ] [ 贪心 ]
  • Reflections on Trusting Trust by Ken Thompson
  • [Agent] ACE(Agentic Context Engineering)源码阅读笔记---(1)基础模块
  • AI大语言模型从0开发
  • 做题笔记22
  • 第三十三篇
  • 2025.11.4
  • 25.11.4 动态规划dp
  • EAS_提供多个单据详情查询接口数据给第三方进行单据查看
  • 顺序结构及选择结构
  • 洛谷 P10894
  • 基本的方法
  • 2025.11.4模拟赛总结
  • 备考笔记7
  • 服务器取证基本知识学习
  • 实用指南:【18】C实战篇——C语言 文件读写【fputc、fgetc、fputs、fgets】
  • 详细介绍:常见反爬虫策略与破解方案汇总
  • 初始three.js
  • 2025 年 11 月财税合规审计报告服务商权威推荐榜:专业审计、税务合规、财务风控,企业财税合规审计报告公司精选
  • 2025 年 11 月财税合规服务厂家推荐排行榜,电商/跨境电商/出口退税/股权设计/平台报送/亚马逊/Temu/1039/海外公司/审计报告全案解决方案
  • 2025 年 11 月一般纳税人财税合规服务商权威推荐榜:专业税务筹划与合规管理解决方案深度解析
  • AI分为ANI和AGI
  • L09_ java内注解反射的简单理解(作为小白,菜鸟的理解)
  • P5369 最大前缀和
  • 奋飞咨询:以专业之光,照亮企业可持续发展通途