【基础算法】离散化 学习笔记离散化是排序在「线性降维」上的典型应用:值域很大而只需保留大小关系时,把元素映射为其排序后的名次,将值域压缩到与数组长度同阶,配代码模板与实现要点。2026-10-08学习笔记
洛谷 P1637 三元上升子序列 - Solution给定长度为 $N$ 的序列,求满足 $i < j < k$ 且 $a[i] < a[j] < a[k]$ 的三元组个数。$N \le 10^5$,$a_i \le 10^9$。通过枚举中间位置 $j$,利用权值树状数组分别统计左右两侧的可行元素个数,$O(N \log N)$ 解决。2026-07-30题解
Codeforces 670C Cinema - Solution每个人有一种语言,每部电影有语音与字幕两种语言,选择「语音听懂人数最多、并列时字幕听懂人数最多」的电影。先离散化语言编号,用数组统计各语言人数后线性比较,O(n+m) 解决。2026-07-28题解
洛谷 P1955 程序自动分析 - SolutionNOI 2015 约束满足问题,利用并查集维护相等关系的传递性,离散化压缩变量编号后判定不等约束是否冲突,时间复杂度 O(n α(n))。2026-07-27题解