05 2023 档案

摘要:首先,我们需要读懂这个图是什么图。 第一,忽略外面的环,由“任意两点可到达且路径唯一”的条件可知这是一棵树。 第二,因为每个点的度数是三,所以如果只考虑中间的树,除了 $k$ 以内的点都是叶子,其他的点度数都是三。 考虑什么样的树有很多点度数是三:完全二叉树。但是这个和完全二叉树还有个不同,就是完全 阅读全文
posted @ 2023-05-30 22:52 jucason_xu 阅读(53) 评论(0) 推荐(0)
摘要:本质不同的算法主要有两种:对子图大小根号分治和类启发式均摊。此外还有很多实现上的差别。 #### 对子图大小根号分治 在线做法: 我们发现,把每个颜色的边和它们的顶点取出为一个子图,所有子图大小的和是 $O(n)$ 级别的。那么我们就可以根号分治。 首先,要预处理每个颜色子图下的连通块。可以用并查集 阅读全文
posted @ 2023-05-30 14:42 jucason_xu 阅读(83) 评论(0) 推荐(0)
摘要:Z 函数是的意义是对于字符串的后缀 $i$,其最长的前缀使得存在原串的一个前缀和它相同。 我个人认为 Z 函数是简单于 KMP 的,因为 KMP 的思想是利用前面的答案递归调用计算新的位置,而 Z 函数是简单的递推,只需要一个原先计算的结果就能得出答案,不需要递归。 Z 函数的核心思想是匹配段思想, 阅读全文
posted @ 2023-05-30 10:21 jucason_xu 阅读(600) 评论(0) 推荐(1)
摘要:诈骗题。给了个模数但是答案根本达不到那个级别。 先提前给出一个引理,如果长度为 $2n$ 的 $s$ 有 $s[1,n]=s[n+1,2n]$ 并且 $s[1,m]=s[m+1,2m](mn-x$,那么就有最左边和最右边的 $n-border$ 串相等。两个拼起来,根据引理就有更小的循环节,这是不被 阅读全文
posted @ 2023-05-29 16:14 jucason_xu 阅读(39) 评论(0) 推荐(0)
摘要:训练一共布置了 8 题,其中除了 H 以外,剩下的题目都是字符串题。这些题全部都可以只用哈希做,也全部都可以不用哈希做。 #### CF126B - Password 题意:要求找到一个字符串同时是 $S$ 的前缀、后缀、非前后缀子串。 哈希做法:首先,我们要查找,需要多短的前缀才能保证其有过非前后 阅读全文
posted @ 2023-05-29 15:22 jucason_xu 阅读(54) 评论(0) 推荐(1)
摘要:就我学过的所有处理字符串的算法(包括匹配算法、回文算法、后缀算法、字符串哈希),都离不开两个恒定的主题:递推构建和压缩信息。这一特征很明显和字符串的性质有关:子串众多,而子串之间互相关联性强。字符串的算法大多数都是 $O(n)$ 的时间或空间复杂度,和“字符串本身包含的信息只有 $O(n)$,只是它 阅读全文
posted @ 2023-05-29 12:40 jucason_xu 阅读(41) 评论(0) 推荐(0)
摘要:尝试使用哈希。首先,我们可以发现,我们去枚举最终答案矩形的长和宽。然后我们会发现宽是关于长单调减少的。那么我们就可以写一个双指针,每次检查对当前的 $x,y$,是否存在长为 $x$,宽为 $y$ 的相同子阵。因为是双指针,所以枚举的复杂度是 $O(n+m)$ 的。 然后考虑匹配。我们发现,我们可以使 阅读全文
posted @ 2023-05-27 17:13 jucason_xu 阅读(26) 评论(0) 推荐(0)
摘要:题意:给出一个无向网络,求其最大费用流(不是最大费用最大流) 首先考虑无向图怎么解决。 先尝试对每个边构造一个子结构,具体方法是对每个边 $(x,y)$ 新增两个点 $a,b$,然后从 $(x,y)$ 分别向 $a$ 连有向边,$b$ 向 $(x,y)$ 连有向边。$a$ 和 $b$ 之间连流量为 阅读全文
posted @ 2023-05-27 16:10 jucason_xu 阅读(14) 评论(0) 推荐(0)
摘要:上来先开了 D,比较简单的小题 #### D - Integer Numbers 题意:现在有一个序列,改变最少的位置,使得这个序列是等差数列,输出方案。 我们发现,如果我们不改变 $a_i$,那么只有满足 $a_i-a_j=i-j$ 的 $j$ 是不需要改变的。也就是需要改变的数是 $n$ 减去 阅读全文
posted @ 2023-05-26 21:42 jucason_xu 阅读(19) 评论(0) 推荐(0)
摘要:给定一个不降整数序列 $1\le x_1\le x_2\le \cdots\le x_n\le q$,请构造一个实数序列 $y$ 满足 $y_i\in [1,q]$,$y_i-y_{i-1}\in[a,b]$,且最小化 $\sum (y_i-x_i)^2$,保证有解。 #### 利用凸函数性质维护导 阅读全文
posted @ 2023-05-24 21:44 jucason_xu 阅读(116) 评论(0) 推荐(1)
摘要:有点厉害。 首先给一个 $\text{SAM}$ 的做法。我们先对所有串建立 $\text{SAM}$,然后对于每个 $T$,我们先预处理对于每个节点对应的 $endpos$ 集合,多长的子串可以满足条件。 然后,我们把 $S$ 串往当前的自动机输入,每次会来到一个 $endpos$ 集合。同时再输 阅读全文
posted @ 2023-05-16 21:53 jucason_xu 阅读(19) 评论(0) 推荐(0)
摘要:我们首先考虑建图。我们把每个点向它的所有变换连边,把每个变换往它产出的所有点连边,同时点到变换的边有边权,就是变换中 $-1$ 的个数。 我们首先处理最小值。我们发现,没有出度的点和变换可以一开始就有结果。只要一个点有一个变换是可以有结果的,这个点就可以有结果。变换则不然,必须所有点都有结果,变换才 阅读全文
posted @ 2023-05-16 17:12 jucason_xu 阅读(51) 评论(0) 推荐(0)
摘要:首先考虑 $dp_{i,msk}$ 表示当前连通了 $msk$ 中所有关键点,并且当前连通的非关键点包含 $i$ 的最小代价。 然后考虑如何转移。我们先用 $Floyd$ 预处理所有点对之间的最短路 $dist_{i,j}$。同时,每次选取的两个用于合并的关键点集合一定没有交集,所以我们可以直接枚举 阅读全文
posted @ 2023-05-16 16:21 jucason_xu 阅读(21) 评论(0) 推荐(0)
摘要:首先我们考虑先把区间处理掉,也就是对于每个 $y$ 轴区间,只保留在这个区间上最早出现的进行贡献,使得每个区间只有一段城墙会贡献到。这个可以离散化然后线段树来处理。 其次,我们发现,对于在时间 $t_i$ 上出现的 $[l_i,r_i]$ 区间(这里我们说的都是指离散后 $[a,a+1)$ 的区间, 阅读全文
posted @ 2023-05-16 14:42 jucason_xu 阅读(31) 评论(0) 推荐(0)
摘要:比较迷糊,比较乱搞。 我们考虑从上往下进行 $dp$,$dp_i$ 表示从顶上水槽 $i$ 最多的流量。然后我们发现,每个高度,能用来进行转移的区间一定没有被完全覆盖。也就是,只有在遮挡关系中被覆盖的区间可能被用来转移。 同时,每个区间还是有要求的,比如 $[1,3]$ 的 $[2,3]$ 部分后来 阅读全文
posted @ 2023-05-15 21:47 jucason_xu 阅读(20) 评论(0) 推荐(0)
摘要:首先我们通过翻转坐标系强制要求光的方向是正方向。翻转坐标系就翻转矩阵的对应维度就可以了。 然后我们发现,如果不考虑遮挡关系,只考虑平面,对于每个位置的方块而言,能照到它的光是一段区间。就是能照到 $(i-1,j)$ 和能找到 $(i,j-1)$ 的光。 我们考虑把光映射到光所在直线在 $y$ 轴上的 阅读全文
posted @ 2023-05-15 21:23 jucason_xu 阅读(26) 评论(0) 推荐(0)
摘要:比较毒瘤的一道模拟。 首先,我们考虑如何处理 define,我们发现,其中不会出现环,并且所有冲突的定义以第一个为准,那么就想到并查集,将 $x$ 的父亲定成 $y$。只不过我们平时的并查集是无向的,这里是有向的,也就是谁是根是重要的。 我们先给所有的定义和被定义的变量映射到一个值,然后用并查集维护 阅读全文
posted @ 2023-05-15 20:58 jucason_xu 阅读(25) 评论(0) 推荐(0)
摘要:我们发现,这其实就是一个完全图合并的问题。如果一个子图不是完全图,就一定要把它们合并起来。 我们考虑 $dp_{msk}$ 表示只对当前集合 $msk$ 的点进行操作,使得 $msk$ 集合是完全图的最小步数。初始状态是枚举所有的 $msk$ 检测是否是完全图。然后我们每次枚举和当前集合的加入集合 阅读全文
posted @ 2023-05-07 19:29 jucason_xu 阅读(29) 评论(0) 推荐(0)
摘要:My solution 首先,我们考虑最暴力的 $dp$,设 $dp_{i,j}$ 表示当前处理到第 $i$ 位,目前序列尾部是 $j$ 的方案数。这个 $dp$ 的转移是很容易的。$dp_{i,j}=\sum_{k=1}^{a_{i-1}}[k\neq j]dp_{i-1,k}$。但是复杂度也是很 阅读全文
posted @ 2023-05-07 19:20 jucason_xu 阅读(38) 评论(0) 推荐(0)
摘要:题意:对于一棵树,有多少种删去边的方式,使得删边之后得到的森林中,每棵树的直径都不超过 $k$。 见数据范围和直径知 $dp$,设 $dp_{i,j}$ 表示当前考虑子树 $i$,所有直径不大于 $k$,且从 $i$ 往下最深深度为 $j$ 的方案数。 同时注意每棵树转移到祖先的时候,$j$ 都要自 阅读全文
posted @ 2023-05-07 12:20 jucason_xu 阅读(31) 评论(0) 推荐(0)
摘要:题意:给一个字符串,每次询问它的一个区间,问最少删除多少个字符,使得区间没有子序列 2016,但是有子序列 2017。 My solution 首先考虑贪心,通过预处理的方式找到区间最后一个 7,依次往前贪心的找到最靠后的一组 2017。接下来,我们需要 7 的后面没有 6,7 前面的部分不能组合出 阅读全文
posted @ 2023-05-07 09:18 jucason_xu 阅读(36) 评论(0) 推荐(0)
摘要:首先看到这个数据范围限制,我们不难猜到是状压 $dp$,首先就猜测复杂度应该是 $O(nmS)$,$S$ 是状压大小,和 $m$ 有关的某个非多项式的级数。 错误的思考过程 然后我们就很快能找到一个状压 $dp$ 的方法。我们可以记录当前一列的黑白染色情况和连通块的集合划分。粗略估计是 $\sum_ 阅读全文
posted @ 2023-05-05 21:08 jucason_xu 阅读(120) 评论(0) 推荐(0)