NOI Blog OI On Top!

Kruskal 重构树

说实话,这个东西还是过于冷门了,感觉刷题练这个真心没啥用。 什么是 Kruskal 重构树 对于一张无向图,我们可以通过 Kruskal 算法求出其最小/最大生成树。 在求最小/最大生成树的时候,设两点 x、y 连边,则新建一个节点 p,连接到 x、y,将 p 的权值设为原边的权值。即用一个点替换了

狼群狼某人 狼群狼某人 发布于 2025-09-17

prufer序列学习笔记

0. 前言 邦邦卡邦!又学会了新的双射方式!这次是关于树的双射内容! 1. 定义与构建 1.1 定义 prufer 序列,又叫做 prüfer 序列,因为键盘平时不太好打出来 ü 所以一般叫做 prufer 序列。他的作用就是可以将一个有标号的 n 个点的树映射成一个由 n-2 个在 [1,n] 范

wjyppm wjyppm 发布于 2025-08-23

Z 函数

集训的时候讲了一下,觉得很有意思,难度也比较小,学 SA 学累了,加上感觉没太多人写这个,故有了这篇笔记。 请注意,本文所有的字符串的下标都是从 1 开始的,本人讨厌从 0 开始。 请注意,本文所有的字符串的下标都是从 1 开始的,本人讨厌从 0 开始。 请注意,本文所有的字符串的下标都是从 1 开

白白白白杀杀杀杀疯疯疯疯 发布于 2025-08-12

看了就能睡着的超绝 FHQ Treap 文章

前置 二叉搜索树 BST BST 有以下两个性质: 二叉树 节点的权值始终为 left<root<right。 堆 Heap 所有父亲的值都不大于两个儿子的值的完全二叉树,叫做堆。 即 root \leq left 且 root \leq right。 树堆 Treap Treap 的节点维护两个信

狼群狼某人 狼群狼某人 发布于 2025-07-24

抽象线段树理论

可能更好的阅读体验 0.前言 侧重于理论以及做题大方向,方法论的指导。 本博客若没有特殊说明,所有变量默认取值范围为 \mathbb{Z}。 1.半群线段树 1.1 定义 我们都说,线段树能维护具有结合律的信息,不能维护没有结合律的信息,那么为什么线段树只能维护有结合律的信息呢?这里我们可以利用半群

wjyppm wjyppm 发布于 2025-07-23

浅学竞赛图

可能更好的阅读体验 翘课写笔记。 1. 定义 竞赛图,即任意两点之前有且仅有一条边的有向图。即有向完全图,有 \dbinom{n}{2} 条边。 至于为什么叫竞赛图,就是赢得点向输的点连边,一个边代表的是胜负关系。 2. 性质 兰道定理(竞赛图判定) 我们定义比分序列为将每个点的出度 s_{i} 从

wjyppm wjyppm 发布于 2025-07-17

根号分治——平衡规划思想的应用

1. 介绍与引入 没有前言,懒得写了。 根号分治,本质是平衡规划思想(大纲 9 级),在预处理和询问复杂度中寻找平衡,我们通常用根号作为问题规模的分界线。我们确定一个界限 B,小于 B 的暴力预处理,大于的回答一次时间只需要 \dfrac{n}{B}\le \sqrt{n} ,那么整个题目就可以做到

wjyppm wjyppm 发布于 2025-07-16

7.16 神秘课程

P3773 [CTSC2017] 吉夫特 - 洛谷 昨天的残存内容,一道非常优雅且神奇的卢卡斯定理的应用。 它告诉了我们,卢卡斯定理除了屎以外,还有一个和 OI 关联性很高的用法,即将组合数转化为和 p 进制相关的内容: \begin{aligned} \dbinom{n}{m} \bmod p &

狼群狼某人 狼群狼某人 发布于 2025-07-16

整体二分

本来感觉挺神秘的一个东西, 学完了似乎没有多难, 放几个板子随便写写吧(今天数学不想做题) 从最最最最人尽皆知的区间第 k 大问题开始吧 引入 如果我想问你一个序列中的区间的第 k 大,你会如何? 显然我们直接二分就行(主席树学傻的滚) 时间复杂度为 O(nlogn) 感觉挺不错的呢 但是如果我们有

白白白白杀杀杀杀疯疯疯疯 发布于 2025-07-15

2025.7.15模拟赛赛后

0.前言 省流:\text{Rk } 1 \to \text{Rk 3},305 \to 255。 T1 虎爷ywk 判断是否存在正整数 n,使得 k|n^2,但 k 不能整除 n,若存在输出最小的 n,否则输出 -1。 1\le k \le 10^{12}

wjyppm wjyppm 发布于 2025-07-15
上一页 下一页