题解
双指针基础线段树
题意
有  $n$  个区间,选  $m$  个,使得最大区间长度减去最小区间长度最小。
 $n\leq5\times 10^5,m\leq2\times10^5$ 。
题解
按区间长度排序,然后双指针扫区间,右指针扫当前选的大区间,左指针扫小区间。对于当前已选数量,用线段树维护。
代码
const int N = 5e5 + 3;
inline ll Read() {
	ll x = 0, f …
Jayun 发布于 2023-11-08 07:35:38
00
后缀自动机(SAM)深度优先搜索(DFS)广度优先搜索(BFS)
题意
给定一个长为  $n$  的字符串  $s$ ,随后有  $q$  次询问,询问对于每次输入的字符串  $t$ ,其在  $s$  中出现的次数。
 $n,\sum|t_i|,q\leq10^5$ 
题解
SAM 板题,把失配树子树大小跑出来直接做。
代码
const int N = 2e5 + 5;
inline ll Read() {
	ll x = 0, f = 1;
	char c …
Jayun 发布于 2023-11-07 21:52:06
00
线性动态规划(线性 DP)枚举
题
小L养了很多马,朋友说在景区收费骑马可以赚很多钱,于是小L想试一试。小L在某4A景区内,收费骑马,有三个项目,骑大圈,骑小圈,过河。小L在正式开业前,有一天试营业,他提前在网上约了朋友,朋友们已经告诉小L他们想要体验的项目。小L想尽可能多地满足朋友们的需求,但他也不希望有马太过劳累而导致生病。小L定义疲劳值,当一匹马的疲劳值大于 100 时(初始时疲劳值为 1),马会累倒,小L会生气。
小L拜 …
Jayun 发布于 2023-11-07 19:49:27
00
字典树质因数分解枚举
[AGC003D] Anticube
题面
给定  $n$  个数  $s_i$ ,要求从中选出最多的数,满足任意两个数之积都不是完全立方数。 $n\le 10^5$ , $s_i\le 10^{10}$ 。
题解
爆草评测机做法。对于每个数,把指数化简,模三等于 1 或 2 才是有价值的,就是一个至多长 15 的链(16 个质数乘在一起一定大过  $10^{10}$ )。把这些链放在 Trie  …
Jayun 发布于 2023-11-07 19:09:30
00
贪心线性动态规划(线性 DP)
题意
有 500,100,50,10,5,1 这些面额的纸币,有  $X$  块钱,使用最少的纸币数表示的。
然后有一些物品,每种只有一个,有费用。每次你可以选择一些没买过的买,付一定的钱,用最小的纸币数会找你钱。
要求最大化最后 1 元纸币的数量。
 $n\leq10^5,X\leq10^{14}$ 。
口胡
有性质是一次只会买一个。
然后有  $\mathcal{O}(n^2)$  的背包做法 …
Jayun 发布于 2023-11-07 07:30:52
00
双指针计数枚举
Present
题面
给出一个长度为  $n$  的数列  $a$ 。其中第  $i$  项为  $a_i$ 。
请你求出  $\bigoplus_{i=1}^{n}\bigoplus_{j=i+1}^{n}(a_i+a_j)$ 。其中  $\oplus$  表示按位异或操作。
 $2 \leq n \leq 4 \times 10^5$ , $1 \leq a_i \leq 10^7$ 。
题解 …
Jayun 发布于 2023-11-06 22:06:25
00
状态压缩动态规划(状压 DP)底层优化(卡常数)扫描线枚举
[POI2018] Różnorodność
题目描述
给定一个  $n$  行  $m$  列的矩阵,请对于每个长宽均为  $k$  的连续子正方形,统计里面出现过的数值的种类数。
 $n,m\le3000$ , $k\le \min(n,m)$ 。
题解
用一个  $n\times k$  大窗口从左往右滑动,这样相当于把二维化成一维。这样一列增一列减地转移。
再考虑大窗口内的  $k\tim …
Jayun 发布于 2023-11-06 21:34:22
00
构造
题面
小氟发现,这张图正好有  $n+1$  条从 1 到 114 的路径,并且在这些路径的边权和中, $[0,n]$  的每一个整数正好出现了一次。
小氟想问你,这张图可能是什么样的?请你给出一种方案。
所有的点编号和边权皆为非负整数,点的编号要在  $[1,n]$  范围内。
 $n\leq32500$ ,方案中点数  $<18$ ,边数  $<48$ ,边权  $\le n$ 。 …
Jayun 发布于 2023-11-06 16:38:17
00
状态压缩动态规划(状压 DP)
RBS
题面
定义括号序列为只包括  $\texttt{(}$  和  $\texttt{)}$  的字符串。一个匹配的括号序列(简记为 RBS)满足,可以在其中加入  $1$  和  $+$ ,将其转化为合法的代数式,例如:
 $\texttt{()()}$  和  $\texttt{(())}$  是匹配的
 $\texttt{)(}$  和  $\texttt{(}$  和  $\text …
Jayun 发布于 2023-11-06 16:32:22
00
