10 2024 档案
摘要:倍增求后缀数组 1. 一些定义 后缀 \(i\):子串 \([\text{len}(S)-i+1,\text{len}(S)]\); \(\text{SA}(i)\):排名为 \(i\) 的后缀; \(\text{rank}(i)\):后缀 \(i\) 的排名,\(\forall i>n,\text
阅读全文
摘要:字符串大师 题意 一个串 \(T\) 是 \(S\) 的循环节,当且仅当存在正整数 \(k\),使得 \(S\) 是 \(T^k\) (\(T\) 重复 \(k\) 次)的前缀。 给出字符串 \(S\) 每个前缀的最短循环节,求出字典序最小的 \(S\)。 思路 记字符串 \(S\) 的最短循环节为
阅读全文
摘要:区间推平,区间查询循环节 题意 给定一个字符串 \(s\) , 请你支持两种操作: \(1, l, r, c\):将 \([l,r]\) 之间的字符改为 \(c\)。 \(2, l, r, d\):询问 \([l,r]\) 之间是否有长度为 \(d\) 的循环节,有输出 YES,否则输出 NO。 思
阅读全文
摘要:CSP2024游记 J组 T1,T2,T3一个小时做完,T4两个半小时不会做。 S组 T1最开始以为是一个线段树,写完了才发现一个循环搞定,浪费一个小时。 T2发现算出超速区间后就变成了一个每个区间选一个点的贪心,一个小时做完。 T4看了发现不能做,开始做T3。 T3先是想了一个非常接近正解的错解,
阅读全文
摘要:消消乐 题意 在一个网格图中,有两种功能方块,一种可以引爆同一行的功能方块,一种可以引爆同一列的。 求最少引爆多少个功能方块能消除所有功能方块。 思路 先想到建图,每个横向的功能方块向同一行的功能方块连有向边,每个竖向的功能方块向同一列的功能方块脸有向边,最后缩点求出入度为 \(0\) 的点的个数即
阅读全文
摘要:观景房 题意 给出若干个矩形,所有矩形组合形成的图形包含了若干条水平线。 你可以选出若干条水平线,必须满足高度先上升后下降,求选出的水平线长度和的最大值。 思路 先考虑如何求出所有水平线的高度和长度,观察下面的图片。 每个位置的水平高度就是覆盖这个位置的矩形高度最大值。 我们就需要一个数据结构支持以
阅读全文
摘要:黑暗城堡 题意 给出一张 \(n\) 个点 \(m\) 条边的图,求该图有多少棵生成树满足生成树上每个点 \(x\) 到 \(1\) 的最短距离 \(S_x\) 等于原图 \(x\) 到 \(1\) 的最短距离 \(D_x\),答案 \(\bmod 2^{31}-1\)。 思路 先考虑如何求出一棵满
阅读全文
摘要:[JOI 2013 Final]现代豪宅 题意 给出一个 \(n\times m\) 的网格图,每两个格子之间有一扇门。 初始上下方向的门都是开着的,左右方向的门是关着的。 有一些格子有按钮,可以把打开的门关上,关上的门打开。 走一步需要一秒,按按钮需要一秒,求从 \((1,1)\) 到达 \((n
阅读全文
摘要:[JOI 2013 Final]搭乘 IOI 火车 题意 给出两个由 \(\text{OI}\) 组成的字符串 \(S,T\)。 可以删除每个字符串的前缀和后缀。 每次从剩下部分的第一位取出一个字符放到新的字符串中。 要求新字符串必须以 \(\text{I}\) 开头结尾,相同的字符不能相邻,求新字
阅读全文
摘要:[JOI 2013 Final]彩灯 题意 给出一个 \(01\) 序列,可以把一段区间反转。 求反转后序列最长的交替子段,即 \(010101 \ldots\) 或 \(101010 \ldots\)。 思路 首先发现一个性质,反转的一定是一段交替子段。 因为反转不交替子段对答案的贡献不优。 枚举
阅读全文
摘要:[JOI 2013 Final]JOIOI 塔 题意 给出一个由 \(\text{JOI}\) 组成的字符串,可从中取出一些子序列。 求最多取出多少 \(\text{IOI}\) 和 \(\text{JOI}\)。 思路 若答案 \(x\) 可行,则所有 \(y<x\) 均可行, 若答案 \(x\)
阅读全文
摘要:[JOI 2024 Final] 建设工程 2 题意 给出一张图和 \(S\),\(T\)。可在任意两点 \(u,v(u<v)\) 之间添加一条长度为 \(L\) 的边(只可添加一次)。 求有多少种添加方案使得 \(S\) 到 \(T\) 的最短路长度 \(\le K\)。 思路 首先,若 \(S\
阅读全文
摘要:[JOI 2024 Final] 室温 题意 给出一个长度为 \(n\) 的序列 \(a\),给出数 \(T\)。 可以进行若干次操作,每次操作可以任选数 \(a_i\),将 \(a_i \leftarrow a_i - T\)。 可以选定一个数 \(t\),使得操作完成后 \(\max |a_i-
阅读全文