洛谷 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)$ 解决。

题解

【组合数学】康托展开 学习笔记

介绍康托展开与逆康托展开的原理、公式推导和代码实现,涵盖排列排名计算、第 k 个排列生成,以及配合树状数组优化的 O(n log n) 解法。

学习笔记

代码模板-康托展开

康托展开 康托展开用于求 $1 \sim n$ 的排列在所有排列中的字典序排名,用树状数组维护未使用过的数中比当前数小的个数。预处理阶乘 $O(n)$,单次展开 $O(n \log n)$。 123456789101112131415161718...

代码模板

代码模板-树状数组

汇总树状数组的常用代码模板:单点修改区间查询、逆序对(含离散化)、区间修改单点查询(差分)、区间修改区间查询(维护 b[i] 与 i·b[i]),并给出相关学习笔记链接。

代码模板

【数据结构】树状数组 学习笔记

从 lowbit 二进制拆分思想出发,介绍树状数组的单点修改、前缀和查询与区间修改操作,通过逆序对、区间和的经典例题讲解代码实现,并关联 P1637 三元上升子序列与康托展开等拓展应用。

学习笔记

本站由 zaochen 使用 Stellar 1.33.1 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
全站访问量 - 次 · 访客数 - 人 · 本页面浏览 -