说实话,这个东西还是过于冷门了,感觉刷题练这个真心没啥用。 什么是 Kruskal 重构树 对于一张无向图,我们可以通过 Kruskal 算法求出其最小/最大生成树。 在求最小/最大生成树的时候,设两点 x、y 连边,则新建一个节点 p,连接到 x、y,将 p 的权值设为原边的权值。即用一个点替换了
0. 前言 邦邦卡邦!又学会了新的双射方式!这次是关于树的双射内容! 1. 定义与构建 1.1 定义 prufer 序列,又叫做 prüfer 序列,因为键盘平时不太好打出来 ü 所以一般叫做 prufer 序列。他的作用就是可以将一个有标号的 n 个点的树映射成一个由 n-2 个在 [1,n] 范
集训的时候讲了一下,觉得很有意思,难度也比较小,学 SA 学累了,加上感觉没太多人写这个,故有了这篇笔记。 请注意,本文所有的字符串的下标都是从 1 开始的,本人讨厌从 0 开始。 请注意,本文所有的字符串的下标都是从 1 开始的,本人讨厌从 0 开始。 请注意,本文所有的字符串的下标都是从 1 开
前置 二叉搜索树 BST BST 有以下两个性质: 二叉树 节点的权值始终为 left<root<right。 堆 Heap 所有父亲的值都不大于两个儿子的值的完全二叉树,叫做堆。 即 root \leq left 且 root \leq right。 树堆 Treap Treap 的节点维护两个信
1. 介绍与引入 没有前言,懒得写了。 根号分治,本质是平衡规划思想(大纲 9 级),在预处理和询问复杂度中寻找平衡,我们通常用根号作为问题规模的分界线。我们确定一个界限 B,小于 B 的暴力预处理,大于的回答一次时间只需要 \dfrac{n}{B}\le \sqrt{n} ,那么整个题目就可以做到
本来感觉挺神秘的一个东西, 学完了似乎没有多难, 放几个板子随便写写吧(今天数学不想做题) 从最最最最人尽皆知的区间第 k 大问题开始吧 引入 如果我想问你一个序列中的区间的第 k 大,你会如何? 显然我们直接二分就行(主席树学傻的滚) 时间复杂度为 O(nlogn) 感觉挺不错的呢 但是如果我们有
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}