03 2020 档案
摘要:"题目链接" Description 给定 $n$ 个 $01$ 模式串。$q$ 次询问: 每次询问给定一个 $01$ 串: 设给这个串匹配的串是在模式串中存在的他的最长前缀 问 $[a, b]$ 时刻内,这个匹配的串变了多少次。 Solution 这题很坑没有给出 $01$ 串的长度数据范围,不过
阅读全文
摘要:"题目链接" Description 给定一个长度为 $N$ 的序列 $a$,和一个区间 $[L, R]$。 求多少连续子序列的权值和在区间内,即满足 $1 \le i \le j \le n$ 且满足 $L \le \sum_{k=i}^{j} a[i] \le R$ 的方案数。 Solution
阅读全文
摘要:总复杂度 $O(n\sqrt{n})$ 的算法,跑到落谷 $rk2$。 一道题调了一年系列。 "题目链接" Description 给 $n$ 个车的坐标 $a_i$,$n$ 个加油站的坐标 $b_i$,$m$ 次修改操作。 每次修改,将第 $i$ 辆车的位置修改到 $x$ 在初始情况及每次修改后:
阅读全文
摘要:"落谷" Solution 考虑一条光线最终的作用效果只有两种:要么向下打入玻璃,要么向上打入玻璃。而我们要求的是向下打入第 $n$ 层玻璃的量。 所以对于每种作用方式建立一个未知数,或者也可以理解为一种广义的 DP: 设 $f_i$ 为向下打入第 $i$ 层玻璃的单位亮光 设 $g_i$ 为向上打
阅读全文
摘要:$\text{Update on 2020.3.25}$ 我之前的做法也有问题,讨论还是不够严谨,导致又有几组(见 "打卡评论区" )$\text{Hack}$ 此题数据极水,这里有几种错误写法: Type 1 这 4 个数据,层层递进地告诉了我们一条边可能覆盖两次,并且覆盖的不一定是连续的桥,解决
阅读全文
摘要:"落谷" 。 Description 给你两个串 $A、B$。询问 $B$ 中有多少个非空子串和 $A$ 的编辑距离不超过 $K$。 Solution 发现 $K \le 5$,考虑可以爆搜。 考虑每个子串都是一个后缀的前缀,不妨枚举后缀,然后考虑对于这个后缀而言,能选几个符合条件的前缀作为子串。
阅读全文
摘要:"落谷" 、 "Loj" Description 给定 $n$ 个点,要求支持操作: 1. 连接 $(x, y)$ 这条边 2. 求当前状态下经过 $(x, y)$ 这条边的路径数量 Solution 考虑这题可以离线,先把树的结构建出来。 考虑动态维护每个节点的子树大小 $size_i$ 与当前联
阅读全文
摘要:"落谷" 、 "Loj" 。 前置知识 1. 高斯消元 2. 快速幂 Description 共有 $m + 1$ 个数,第一个初始值为 $p$,必须在 $[0, n]$ 的区间修改,剩下 $m$ 个都是无穷。 每轮操作是: 1. 不为最大值的数中等概率随机选择一个把它 $+1$ 2. $k$ 次找
阅读全文
摘要:"题目链接" 。 Description 给定 $n$ 个软件包,他们之间存在树形的依赖关系(儿子要安装的话爸爸必须安装,爸爸卸载的话儿子必须卸载)。 要你动态支持安装一个软件,卸载一个软件,求出改变软件的包数。 Solution 将题目转化,考虑将安装状态看做节点上的权值,$1$ 为已安装,$0$
阅读全文
摘要:"题目链接" 。 Description 给一个长度为 $n$ 的字符串。每个下标有一个权值。 若以 $p$ 开头的后缀与以 $q$ 开头的后缀有长度为 $r$ 的公共子串,则称这 $p, q$ 是 $r$ 相似的,并且可以获得 $a_p \times a_q$ 的价值。 对于每个 $0 \le r
阅读全文
摘要:"题目链接" 。 Description 维护一个序列,支持操作: 每次在 $P_i$ 位置后插入一段 $X_i$ 单位的燃料,这一段有三个模式,对应的能量分别是 $A_i, B_i, C_i$。然后将这个序列分成四段(一段可以为空),权值分别是 $ABCA$,最后求最大总能量。 Solution
阅读全文
摘要:"题目链接" 。 Description 给定一棵树,在树上选 3 个点,要求两两距离相等,求方案数。 Solution 因为 $n \le 5000$,可以 $O(n ^ 2)$ 预处理两两之间的距离。 考虑是一颗树,而且这 $3$ 个点两两距离相等,所以必然他们有一个汇聚点。且以这个汇聚点为根的
阅读全文
摘要:"题目链接" Description 一辆火车依次经过 $n$ 个车站,顺序是 $1, 2, 3, ..., n 1, n$。给定 $A_{i, j}$ 表示从 $i$ 站上车,$j$ 站下车的个数。 有 $K$ 次在每站操作后的检票机会,问最多能检票的多少不同的人。 Solution 这相当于给你
阅读全文
摘要:"题目链接" 。 Description 有 $m$ 种不同的小球,要装饰成一个 $n$ 层的树,每层有 $L_i$ 个小球,要求: 每一层内部相邻小球不相同。 相邻两层的小球颜色集合不同。 求方案数。 Solution 当你划分完毕每层的颜色集合后,每层的方案是独立的,可以相乘。 考虑先每一层单独
阅读全文
摘要:"题目链接" 。 Description 三塔汉诺塔问题,给一个 $3 \times 3$ 的矩阵 $t$,$t_{i, j}$ 表示从 $i$ 塔移动一个盘子到 $j$ 塔的花费。 初始状态 $n$ 个盘子都在第一个盘子,要求将所有的移到第三个盘子,求最小花费。 Solution 显然可以间接移动
阅读全文
摘要:"题目链接" 。 Solution 状态设计 设 $f_{i, j}$ 为 $1$ 到 $i$ 的排列,其中有 $j$ 个 $\text{‘ include using namespace std; const int N = 1005, P = 2015; int n, K, f[N][N]; i
阅读全文
摘要:"题目链接" Solution 用传统的思想考虑正推,发现后面的答案依赖于当前的 $p$,你不但要记录前 $i$ 个还要记录 $p$,显然空间爆炸。 类似 "AcWing 300. 任务安排1" ,不妨考虑每次操作对后面整体的影响: 如果你采矿,之后的所有操作代价都会变为原来的 $1 0.01k$。
阅读全文
摘要:"题目链接" Description 一共 $n$ 个人去打饭,每个人一个打饭时间 $A_i$、吃饭时间 $B_i$。要求把 $n$ 个人分成两组,每组占领一个窗口不间断打饭,最小化所有人吃完饭时刻。 Solution 首先这是一个排列数问题,与 "AcWing 734. 能量石" 类似,不妨用贪心
阅读全文
摘要:"题目链接" 。 Discription 给定长度为 $n$ 的序列 $A$($n$ 为偶数),判断是否能将其划分为两个长度为 $\dfrac{N}{2}$ 的严格递增子序列。 Solution 不妨按下标从小到大考虑每个数要分给哪一组,比较明显的 DP,朴素时空复杂度太高。 在朴素中,我们需要知道
阅读全文
摘要:"题目链接" 。 Description 求长度为 $N$ 的排列,满足对于每一个数,要么两边都比他高,要么两边都比他低的的方案数,对 $P$ 取模。 Solution 是 "AcWing 309. 装饰围栏" 的弱化版。 考虑用 $n 1$ 长度的序列,在右边填上一个数,推导至长度为 $n$,相当
阅读全文
摘要:"题目链接" 描述 两个序列 $x, y$,可以将一个序列每个值同时加非负整数 $c$,其中一个序列可以循环移位,要求最小化: $$ \sum_{i = 1}^{n}(x_i y_i) ^ 2 $$ 题解 循环移位 $\Leftrightarrow$ 断环成链。显然那个序列循环移位不影响,而且强制加
阅读全文
摘要:"题目链接" 多模式匹配问题,先建 AC 自动机。 套路性的搞个 DP: $f[i][j]$ 表示前 $i$ 个字符,当前在 $AC$ 自动机上的节点是 $j$ 能匹配到的最多分。 初始化 $f[0][0] = 0$,其余为负无穷 答案 $\max\{f[K][i]\}$ 考虑一条边 $u \Rig
阅读全文
摘要:"题目链接" 题解 多模式匹配首先建 AC 自动机,看到 $len \le 10^9$ 想到矩阵乘法优化。 朴素 DP 关于分割的最大值,可以贪心,只要走到一个能匹配串的点立刻返回根继续匹配就行,一定能保证最优。 以最后的结果枚举算期望显然是 $\text{alphaset} ^ {len}$ 的,
阅读全文
摘要:"题目地址" 题解 很明显那 $k$ 个字符串作为模式串,建 AC 自动机。考虑每个字符串在当前动态维护的集合中出现多少次,由于总长度 $ \le 10^6$,让匹配串在 AC 自动机上走,显然这个后缀出现的次数就是他在 fail 树上的子树的节点的 $cnt$。 我们需要一个树上数据结构,动态维护
阅读全文
摘要:"题目链接" 。 题解 虽然总长度我们不能确定,但是如果跟着第一行字符串跑建 AC 自动机,节点数肯定 $\le 10^5$ 的,因为每个字符最多增加一个节点。 考虑一个查询 $(x, y)$, 即把字符串 $s[y]$ 的每个点对应在图上的点 $+1$,然后询问 $x$ 对应节点的子树和。 子树和
阅读全文
摘要:"题目链接" Description 给 $n$ 个基本词汇, $m$ 个禁忌词语。求用基本词汇(每个词汇可重复词汇)拼成长度为 $L$ 的 不包含任何禁忌词语的字符串的方案数。 Solution 在 数据规模与约定 中,我们发现可以把数据划分成两档: 1. $L \le 100$ 的(前 $60p
阅读全文
摘要:"题目链接" 。只要有一个可读就行,容斥会好做一点。 可读数量 $=$ 总数 $ $ 不可读数量 总数显然是 $26 ^ n$。 求解不可读数量 不可读数量可以利用 AC 自动机的模型进行 DP,把 $AC$ 自动机上所有串的终点及他们在 fail 树上的子树全部染上非法,这样即求在 AC 自动机上
阅读全文