随笔分类 - 学习笔记
新知识的总结
摘要:OpenCV 的安装和配置 Windows OpenCV 官网下载安装 Windows 最新版预编译包(v4.12.0),之后将 build\x64\vc16目录下的 bin 和 lib 文件夹添加到环境变量。 下载安装 Visual Studio,选择 C++ 桌面项目开发安装。之后创建新项目,选
阅读全文
摘要:DS 小结 Luogu P5046 [Ynoi2019 模拟赛] Yuno loves sqrt technology I 对于全局询问容易使用归并排序求解答案,因此考虑分块将这个复杂度进行优化。 将区间的贡献拆为散块对散块,散块对整块,整块对整块,分别处理计算。精细实现做到 \(\mathcal
阅读全文
摘要:OI 中的多项式 目前已有知识点: 拉格朗日插值 快速傅里叶变换 FFT 快速数论变换 NTT 多项式 ln 多项式牛顿迭代 多项式求逆 多项式开根 多项式 exp 生成函数 普通生成函数 指数生成函数 拉格朗日插值 模板 给定 \(n\) 个点 \((x_i,y_i)\),要求求出一个多项式函数
阅读全文
摘要:K-D Tree 学习笔记 K-D Tree 是一种可以较高效维护高维信息的数据结构,矩形查询的时间复杂度一般是 $\displaystyle\mathcal O(n^{1-1/n})$ 的(我不会证),OI 中一般用到的都是 2-D Tree,也就是二维的 KDT,时间复杂度最优 $\mathca
阅读全文
摘要:搜索剪枝练习 搜索是一类很暴力的做法,往往时间复杂度都是指数级别的,大部分时候都无法作为正解使用。不过可以通过一些剪枝技巧,减小搜索规模,加快程序运行速度。 P1025 [NOIP2001 提高组] 数的划分 Luogu P1025 题目描述 将整数 $n$ 分成 $k$ 份,且每份不能为空,任意两
阅读全文
摘要:2-SAT 学习笔记 有一类生活中的问题: 一个人邀请了 A,B,C,D 四个人来他的 party,但是 A 和 B 有矛盾,所以他俩不会一起来,C 和 D 也有矛盾不会一起来,要求找到一种合适的方式来邀请他们,判断是否有这种方案,并且找出这种方案。 把这个问题抽象一下,有 $n$ 个 $\text
阅读全文
摘要:虚树学习笔记 虚树是用来优化树形 $\texttt{DP}$ 的一种算法,可以选取树中的部分关键点进行 $\texttt{DP}$ 以减小每次 $\texttt{DP}$ 的规模,从而减少一些不必要的耗时。下面将会结合一道虚树的经典题来说明虚树的用途。 前置知识:在线 $\texttt{LCA}$
阅读全文
摘要:平衡树 平衡树是一类二叉查找树,因为普通的二叉查找树可能会因为特殊的数据的构造变成链,导致原本应该是 $\mathcal O(\log n)$ 的查找速度退化成为 $\mathcal O(n)$,损失大量效率。为了解决这个问题,就有了平衡树这一数据结构。 平衡树,就是对二叉查找树进行一些变形,使得这
阅读全文
摘要:Tree and Queries CF375D (Luogu) 题面翻译 给定一棵 $n$ 个节点的树,根节点为 $1$。每个节点上有一个颜色 $c_i$。$m$ 次操作。操作有一种: u k:询问在以 $u$ 为根的子树中,出现次数 $\ge k$ 的颜色有多少种。 $2\le n\le 10^5
阅读全文
摘要:[CQOI2006]凸多边形 /【模板】半平面交 题目描述 逆时针给出n个凸多边形的顶点坐标,求它们交的面积。例如n=2时,两个凸多边形如下图: 则相交部分的面积为5.233。 输入格式 第一行有一个整数n,表示凸多边形的个数,以下依次描述各个多边形。第i个多边形的第一行包含一个整数mi,表示多边形
阅读全文
摘要:[USACO03FALL]Beauty Contest G /【模板】旋转卡壳 题目描述 给定平面上 $n$ 个点,求凸包直径。 输入格式 第一行一个正整数 $n$。 接下来 $n$ 行,每行两个整数 $x,y$,表示一个点的坐标。 输出格式 输出一行一个整数,表示答案的平方。 样例 #1 样例输入
阅读全文
摘要:二维凸包 假设平面上有 $n$ 个点,需要找到一个周长最小的图形来覆盖所有的点,这个图形就被定义作凸包。 形象地来说,就是在这 $n$ 个点的外侧放上一圈的绳子,然后不断收缩,最终这条绳子会被最外围的点卡住,此时的绳子就是这 $n$ 个点的凸包。 下面,结合模板题,将会讲解求二维凸包的一种常用做法。
阅读全文
摘要:【模板】矩阵求逆 Luogu P4783 题目描述 求一个 $N\times N$ 的矩阵的逆矩阵。答案对 ${10}^9+7$ 取模。 输入格式 第一行有一个整数 $N$,代表矩阵的大小; 接下来 $N$ 行,每行 $N$ 个整数,其中第 $i$ 行第 $j$ 列的数代表矩阵中的元素 $a_{i
阅读全文
摘要:线性基 线性基大多数时候是用来解决异或相关的问题。这篇博客会介绍线性基最最基础的东西。 性质 引用自 oi-wiki 里对线性基的定义 线性基是向量空间的一组基,通常可以解决有关异或的一些题目。 通俗一点的讲法就是由一个集合构造出来的另一个集合,它有以下几个性质: 线性基的元素能相互异或得到原集合的
阅读全文
摘要:插头 DP 插头 DP 是在状态压缩 DP 的基础上用于解决一些需要处理连通性问题(比如求棋盘上的哈密顿回路)。 要了解插头 DP ,首先先回到普通的状压 DP。状压 DP 的一类经典解法就是设 DP 数组 $dp[i][j]$,用 $i$ 表示枚举到了第 $i$ 行,并且第 $i$ 行的状态为 $
阅读全文
摘要:珂朵莉树/ODT/颜色段均摊 诞生于 CF896C (镜像站),最开始叫做老司机树(因为发现此数据结构的用户名叫 $\texttt{Old Driver}$),后来因为题目名字 $\texttt{Willem, Chtholly and Seniorious}$ ,所以又名珂朵莉树~~(珂朵莉是世界
阅读全文