随笔分类 - 学习笔记
记录学习的算法和数据结构等
摘要:链接 洛谷 题目大意 给定一棵树,多组询问,每组询问给定 \(k\) 个点,你可以删掉不同于那 \(k\) 个点的 \(m\) 个点,使得这 \(k\) 个点两两不连通,要求最小化 \(m\),如果不可能输出 \(-1\)。询问之间独立。 思路 虚树板题。 虚树 针对一些有多组特殊点的树上问题。 如
阅读全文
摘要:简介: 光速幂主要思想是分块,把幂分为 \(\sqrt{p}\) 份,那么 \(a^b=a^{k\sqrt p+t}\),其中 \(k,t\) 为常数,\(p\) 表示模数。\(\mathcal{O}(\sqrt p)\) 预处理出所有 \(a^{k\sqrt{p}}\) 和 \(a^t\)。然后
阅读全文
摘要:前言: 本文应该可以帮助你解决绝大部分初赛问题,或者复习。 但是有一些原题历史过于久远,知识点已经不重要了,或是一些太过于简单的问题(如“IT”的含义等),也就没必要介绍了。 查阅知识点可以通过翻目录或者 Ctrl+F。 忽然发现有些复赛的知识点(如博弈论)初赛也用得上,所以本文会持续更新。 关于计
阅读全文
摘要:链接: 洛谷 题目大意: 有一个 \(n\) 个节点的图,在 \(k\) 时间内有 \(m\) 条边会出现后消失,要求出每一时间段内这个图是否是二分图。 思路: 线段树分治用于离线、可撤销类的题目。 线段树维护某时间内连的边。统计答案时,用扩展域并查集查询连边是否合法。并查集不可路径压缩,因为要用栈
阅读全文
摘要:思路: 设 \([l,r],[L,R]\) 分别为答案的值域和定义域。整体二分的过程中像主席树一样按时间顺序存入数组分治: 先找到当前答案与 \(mid\) 之间的关系,并分类。 分好类,以其作为下一层分治的数组。 例题: 区间第k小: 题目:Luogu P3834 【模板】可持久化线段树 2(主席
阅读全文
摘要:#include <cmath> #include <queue> #include <vector> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #define ZYC using #d
阅读全文
摘要:单点修改区间查询 LOJ #133. 二维树状数组 1:单点修改,区间查询 根据二维前缀和的思想对普通树状数组优化: const int N = 4106; inline ll Read() { ll x = 0, f = 1; char c = getchar(); while (c != '-'
阅读全文
摘要:点分治: 引出: 给定一个 \(n(n\leq 10^4)\) 个节点的树,树枝有边权,求距离不超过 \(k\) 的点的对数。 求解: 直接 \(\mathcal{O}(n^2)\) 行不通,我们要想一个更快的方法。 考虑用点分治。我们先把任意一点作为根节点 \(rt\) 分出若干子树。如图,绿点就
阅读全文
摘要:AC 自动机: 介绍: 用 Trie 维护模式串的前缀。 自动机快速的原因就在于失配指针 \(\mathrm{fail}_i\),它指向 \(i\) 的最长后缀。 对于构建 \(\mathrm{fail}_i\),找到其父节点 \(\mathrm{fa}\),一直跳 \(\mathrm{fail}\
阅读全文
摘要:文章没有写完,近期填完这坑 参考文章: https://www.luogu.com.cn/blog/froggy/duo-xiang-shi-tai-za-hui https://www.cnblogs.com/zwfymqz/p/8244902.html https://www.cnblogs.c
阅读全文
摘要:引出: 给定一个线性方程组,对其求解。 一般对于求解线性方程组的问题,我们用到高斯消元法对其进行求解。那么高斯消元咋消啊? 正文: 假设我们要求解一个线性方程组: $$\left{\begin x&+& 3y&+& 4z&=&5 \ x&+& 4y&+& 7z&=&3 \ 9x&+& 3y&+& 2
阅读全文
摘要:参考文章: 【洛谷日报#33】时空复杂度分析及master定理 李卿. 递归算法分析中主定理的应用[J]. 黑龙江科技信息, 2011(29):97+207. Thomas H.Cormen,Charles E.Leiserson,Ronald L.Rivest,Clifford Stein. 殷建
阅读全文
摘要:主席树: 可持久化权值线段树也被称为主席树,它通过建新节点来维护历史值,使得能在短时间内查找历史值。 模板题题目链接 讲解: 方法一: 每次二分答案 \(x\),然后求出区间内多少个小于等于 \(x\) 的数。而考虑怎么求,我们可以用权值线段树。把所有数离散化,维护 \(n\) 棵权值线段树,第 \
阅读全文
摘要:题目大意: 现在给出一个仙人掌图(即每条边最多只出现在一个环里),给出多个询问,每个询问求出两点的最短距离。 正文: 概述: 仙人掌是图,由于时空限制,直接求多源最短路径会超时超空,所以我们通过 圆方树 来将其转化为树上问题。 圆方树: 关于圆方树,要讲得通俗易懂,原图里每个节点都是原点,将每个环里
阅读全文
摘要:题目大意: 求 \(n\) 个矩形的面积并。 正文: 本题计算面积并在扫描线中较为简单。抛开离散化,我们着重讲扫描线。 与上图为例,思考怎么计算它们的几何并。 暴力 用一个数组来存信息,覆盖了就标 1,否则标 0。暴力既好想又好写,但当坐标一大,时空都会超。 容斥 用总面积减去重合面积。但只局限于重
阅读全文
摘要:引出: 求出一个二分图的最大匹配。 二分图匹配怎么求? 可以用匈牙利算法:遍历每个点,查找增广路,若找到增广路,则修改匹配集合和匹配数;否则终止算法,返回最大匹配数。这样时间复杂度是 \(\mathcal{O}(nm)\) 的。代码实现: int con[N * N]; bool vis[N * N
阅读全文
摘要:问题: 给出 \(n,k\),快速求出: \(\Large{\sum_{i = 1}^{n} k \mod i}\) 对于$20%$的数据,\(n \leq 10^{6} , 1 \leq k \leq 10^9\) 对于$100%$的数据,\(n \leq 10^{12} , 1 \leq k \
阅读全文