随笔分类 -  学习笔记

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