摘要:
这是一道思维题。 本文约定:\(u \to v\) 表示从 \(u\) 到 \(v\) 的路径。 首先简化一下题意:给出一棵树,求出三个点使得三个点之间两两路径并的长度最大。 显然我们不能枚举这三个点,复杂度 \(O(n^3)\) 过大,不能接受。 做这道题需要一个重要结论:树的直径的两个端点一定是 阅读全文
摘要:
1. 前言 本篇博文是作者在学习点分治这一算法的时候做的一些题目的总结。 前置知识:点分治算法。 图论专题-学习笔记:点分治 2. 练习题 题单: P4178 Tree P2634 [国家集训队]聪聪可可 P4149 [IOI2011]Race P4178 Tree 考虑点分治。 这道题需要求的是路 阅读全文
摘要:
1. 前言 点分治,是一种图论算法,专门用于一类树上路径统计问题。 前置知识:无。 2. 详解 2.1 树的重心 讲点分治之前我们先来讲讲树的重心。 树的重心的定义是这样的:在一棵树中,如果以一个点为根,其所有儿子的子树大小最大值是最小的,那么这个点就是树的重心。 换言之,树的重心需要满足其子树的最 阅读全文
摘要:
1. 前言 本篇文章是作者学习乘法逆元的时候的一些学习笔记。 前置知识:同余式,一些简单的数论符号。 2. 详解 2.1 定义+作用 乘法逆元的定义如下:对于任意 $a \in N_+$,若存在 $a \in N_+$ 使得 $ax \equiv 1 \pmod p$,则称 $a$ 是 $x$ 在模 阅读全文
摘要:
一道神仙题,很考验各位对于期望 DP 的掌握程度与数据结构优化 DP 的熟练度。 ~~本题好像有线段树套矩阵优化 DP 做法?不管了不管了,反正我没写~~ 实际上一开始想的时候我迅速发现这道题与以前做过的一道题目很相似,感觉可以线段树套矩阵做,但是想了一个晚上没想出解法。 后来看题解,发现确实有这样 阅读全文
摘要:
1. 前言 本篇文章是作者学习矩阵的时候的一些相关训练。 注意作者是个 OIer,因此并不会涉及到线性代数知识(或者说是很少)。 前置知识:矩阵快速幂 2. 题单 题单: P5343 【XR-1】分块 P5789 [TJOI2017]可乐(数据加强版) P5337 [TJOI2019]甲苯先生的字符 阅读全文
摘要:
1. 前言 本篇文章是作者学习矩阵时候的一些笔记。 注意作者是个 OIer,因此并不会涉及到专业的线性代数知识(或者说是极少)。 前置知识:矩阵定义+矩阵乘法,正整数快速幂。 2. 矩阵快速幂 我们知道复数(或者简单点,实数)中有幂的定义: 对于 \(a \in C\),将 \(a \times a 阅读全文
摘要:
1. 前言 本篇文章是作者学习矩阵时候的一些个人笔记。 由于作者是个高中 OIer,因此并不会涉及到有关线性代数的很多知识,只记录与 OI 有关的矩阵。 这边建议学线性代数的人看一下这篇博文,讲的非常好:理解矩阵(一)(Author:孟岩)。 2. 定义 2.1 向量 讲矩阵之前我们先来讲讲向量。 阅读全文
摘要:
这道题是一道思维题。 定义『段』如下: 段:一个段是原序列的连续子序列,其中 \([1,k]\) 内的所有正整数都出现过。 据此,我们可以对原序列分段,分的尽量多。 比如样例: 1 5 3 2 5 1 3 4 4 2 5 1 2 3 可以将其分成下面两段: [1 5 3 2 5 1 3 4][4 2 阅读全文
摘要:
1. 前言 本文是作者写的第 3 篇状压 DP 的博文,专门用来总结、复习状压 DP 这一动态规划的相关内容。 2. 题单 题单: P2396 yyy loves Maths VII P2150 [NOI2015] 寿司晚宴 P2396 yyy loves Maths VII 看到这个 \(n \l 阅读全文
摘要:
这道题是一道好题目,考察了建模能力。 但是因为数据过水导致建模建错都能有 80 分 首先我们需要了解一个概念:最大权闭合子图。 什么是最大权闭合子图? 对于一张有向图 \(G=<V,E>\),我们从中选出一些点,如果这些点满足以下条件,就称这些点组成的图为闭合子图: 对于每一个被选出来的点,其在图 阅读全文
摘要:
1. 前言 本篇文章是作者写的第 3 篇树形 DP 博文,对树形 DP 这一算法做一个复习与总结,同时进行盲点扫荡。 2. 题单 题单: 普通树形 DP: P4395 [BOI2003]Gem 气垫车 背包类树形 DP: P3698 [CQOI2017]小Q的棋盘 P3177 [HAOI2015]树 阅读全文
摘要:
1. 前言 欧拉定理与扩展欧拉定理,是数论中的一个很重要的定理。 该定理可以将形如 \(a^b\) 的式子的指数降得很低,通常可以降到 \(\log b\) 可接受范围内,这样就可以用快速幂计算了。 若无特殊说明,本文所有数都是正整数。 一些符号说明: \(\varphi(n)\) 为欧拉函数。 \ 阅读全文
摘要:
一道神仙图论题,很考验各位对最短路以及染色问题的理解。 首先说明 1 点,实质上神秘问题就是经典的染色问题。 这里首先简要分析一下给出的几个代码的特色: FloydWarshall:稳定的 $O(V^3)$ 运行。下称 Floyd。 OptimizedBellmanFord:加了优化的 Bellma 阅读全文
摘要:
这道题是一道很好的二位前缀和问题。 然而码量有点大。 下面规定 \(n\) 表示行,\(m\) 表示列,\(n,m\) 同阶。 即计算复杂度的时候视 \(O(nm)\) 为 \(O(n^2)\)。 首先预处理 \(sum_{i,j}\) 表示从 \((1,1)\) 到 \((i,j)\) 的和,也就 阅读全文
摘要:
1. 前言 Manacher 算法,俗称“马拉车”算法,是一种字符串算法,该算法可以在线性时间内求出一个串中最长回文串的长度,以及以每一个点为回文中心的奇长度回文串的长度。 实际上偶长度回文串的长度也能够求,后面会讲。 前置知识:无。 2. 详解 例题:P3805 【模板】manacher算法 2. 阅读全文
摘要:
update:发现之前桥的 std 写错了,现已更正。 1. 前言 割点与桥,是图论的一个分支,常使用 Tarjan 算法实现。 ~~没错又是这个算法~~ 注意割点与桥中的 Tarjan 算法与强连通分量中的 Tarjan 算法在具体实现上有所不同。 前置知识: dfs 树 / dfs 序 2. 割 阅读全文
摘要:
1. 前言 数据结构优化 DP,是利用各种数据结构来优化 DP 的时空复杂度的一种方法。 前置知识:普通 DP+常见数据结构(比如线段树等) 注意本篇博文将不会对暴力 DP 方程如何建立进行讲解。 2. 例题 例题:P4644 [USACO05DEC]Cleaning Shifts S 数据结构优化 阅读全文
摘要:
一些 Update Update 2021/11/16:发现之前推的结论有严重错误,现已更正,如果有读者被误导,在此深表歉意。 1. 前言 差分约束是一种最短路算法,专门用来解决下面这类问题: 已知 $n$ 个正整数 $x_1,x_2,...,x_n$,与 $m$ 个形如 $x_i-x_j \leq 阅读全文
摘要:
最小生成树好题。 下面规定鹅卵石路长度为 1,水泥路长度为 0,则题中要求的是一棵边权为 \(k\) 的生成树。 这道题一开始的时候我会认为边权为 1 的边可以随便加,毕竟根据样例来看,删这一条换另一条并没有什么问题。 于是就有一种做法是先选好 \(k\) 条 1 边,然后剩下的 0 边随意加。 然 阅读全文