摘要:
典型例题 Acwing 权值 故名思义,在带权并查集中,我们需要让每个节点携带一个“权值”。 那么这个权值应该是什么呢?其实答案就在并查集当中。 由于在并查集当中我们可以在 \(O(1)\) 时间内找到一个节点的根节点,那么我们可以让这个权值表示为:某个节点到根节点的距离。 如何维护权值 首先我们需 阅读全文
摘要:
1. 前置知识-求组合数 求组合数 \(C^b_a = C^{b-1}_{a-1}+C^{b}_{b-1}\) \(C^b_a\) 的含义就是从 \(a\) 个数当中选 \(b\) 个数 如果我们不选第 \(a\) 个数:\(C_{a-1}^b\) 如果我们选第 \(a\) 个数:\(C_{a-1} 阅读全文
摘要:
0x01 单调栈 1. 什么是单调栈 所谓单调栈,就是栈中的元素都是单调的。 2. 适用场景 一般,通常是一维数组,要寻找任一个元素的右边或者左边第一个比自己大或者小的元素的位置,此时我们就要想到可以用单调栈了。 通常,单调栈中存储的是元素的下标。并且一般情况下: 寻找右边第一个比自己大的数,从栈底 阅读全文
摘要:
题目描述 主要元素 思路 这种找**“数组中出现次数超过一半的元素”**的题目的算法是固定的 -- 摩尔投票法 如果存在这么一个数,他的出现次数超过数组大小的一半,也就是说,他出现的次数之和大于其他元素的出现次数之和 那么将这个数和其他数两两抵消之后,最后剩余的数的集合一定是它本身。 算法思路: 设 阅读全文
摘要:
题目描述 传智杯 思路 题目给定我们 $x$,让我们找到小于 $x$ 的 $y$ 使得 $x^y$ 为质数。 用 $p$ 来表示质数。 $x⊕y=p → x⊕p=y, ∵y<x,∴x⊕p<x $ 那么题目就转化为了求 $x⊕p < x$ 的质数 $p$ 的个数。 我们可以先线性筛得到所有的质数,对于 阅读全文
摘要:
题目描述 树的变迁 思路 因为更改点的权值不会改变树的结构,但是删去一条边会改变树的结构,不同与增加一条边,删除一条边的处理是很麻烦(没实现过!!!) 既然我们无法删除一条边,那么我们可以倒着加边! 这类问题的通用解法是:先保存删边,然后倒叙处理。 犯的错误 1.题目中给定的边的下标从 $1$ 开始 阅读全文
摘要:
题目描述 子序列宽度之和 思路 ref 代码 相似题 子数组范围和 acwing 阅读全文
摘要:
题目描述 前 k 个高频元素 坑点 在 $C++$ 中,可以在 $Class$ 中再定义一个 $Class$ 对于优先队列的排序,我们要反过来考虑!例如我们使用 $less$ 排序时,我们是希望队头是最小的元素,但是恰恰相反!队头是最大的元素。对于我们自定义的排序规则也是如此。 另外,比较规则我们传 阅读全文