Loading

1 2 3 4 5 ··· 37 下一页
摘要: 前提 个人感觉 SAM 比其余的字符串算法更具有记录价值,像 KMP,AC 自动机,SA 等算法都能或多或少被 SAM 替代,除了像马拉车这类特殊处理回文的算法和基本子串结构这类高深算法之外,SAM 基本上就是能接触到的最顶端的东西了。 这可能是我退役前写的最后一篇学习笔记了。 SAM 是什么 SA 阅读全文
posted @ 2025-07-18 13:33 Alexande 阅读(24) 评论(0) 推荐(0)
摘要: 我是谁:HNCS 一枚很菜的 OIer,常用 _Alexande_ 和以 wyb 开头的用户名。 题解:题解里的东西都很少,没有代码哦。由于人很菜,有没说明好的可以指出。 博客为什么上锁:可能涉及到私人秘密。脸滚键盘,一般有些密码为:_^=SV<ZWKKG_nL2Ij];383>^l,如果是错误的话 阅读全文
posted @ 2023-09-07 22:14 Alexande 阅读(172) 评论(3) 推荐(0)
摘要: 考虑条件本质上相当于什么: 根结点必须得是 \(1\)。 原树中有 \(n\) 个 \(1\)。 每一次操作必须将一个 \(1\) 合并到一个 \(\ge 1\) 的位置。 容易设 \(f_{i, 0/1}\) 为子树中有 \(n\) 个黑点,根到底是不是黑点(\(0\) 表示是黑点,\(1\) 表 阅读全文
posted @ 2026-01-15 20:41 Alexande 阅读(1) 评论(0) 推荐(0)
摘要: 每次遇到这种带 mod 的最优化问题就很烦躁。 首先学到的一个很常用的技巧就是 \((a + b) \bmod m \to (b - (-a)) \bmod m\),将 \(a\) 转化为 \(-a\),符号变为 \(-\)。 这个题目就是说要使得 \(b\) 中一些元素加上 \(m\) 以此来应对 阅读全文
posted @ 2026-01-15 10:07 Alexande 阅读(0) 评论(0) 推荐(0)
摘要: 很喜欢这种不需要用任何算法的题目。 首先不妨考虑一下操作次数的下限,不难发现是 \(4\),因为每个角你都要单独花费一次操作去覆盖。 那么比较成熟的想法便是,从四个边界选出最小值和次小值。 但是有一个问题是此时四个角确实覆盖满了,但是由于保证了最小性,所以中间可能空出一块来,我们将说明操作只可能如下 阅读全文
posted @ 2026-01-14 19:55 Alexande 阅读(2) 评论(0) 推荐(0)
摘要: 有一个朴素 \(O(nm|E|)\) 做法是拆位,在表达式树上 DP 做。 发现 \(m\) 很小,考虑带 \(2^m\) 的做法。 可以对于每一位的每一个数枚举一个答案 \(v\),设 \(f_{i, s, 0/1/2}\) 为在表达式树上结点 \(i\),目前这一位 \(m\) 个数字与 \(v 阅读全文
posted @ 2026-01-14 15:26 Alexande 阅读(1) 评论(0) 推荐(0)
摘要: 首先放置这种问题考虑连续段 DP。 发现对于两个磁铁,只需要探究其范围较大的那一个是什么,因此我们按照 \(r\) 从小到大排序,这样将合并放到 \(i\) 考虑时无需考虑前面的范围是多少,因为既然满足了 \(i\) 就肯定满足前面任意一个。 套路的,设 \(f_{i, j, k}\) 为前 \(i 阅读全文
posted @ 2026-01-13 21:19 Alexande 阅读(4) 评论(0) 推荐(0)
摘要: lxl 喜欢卡常。 首先第一眼把并搞成交,那么 bitset 的 \(O(\frac{n^2}{w})\) 做法就出来了。 考虑更不要脑子一点的做法是,每次新增一个元素,就将这个集合与这个元素以前所在的集合暴力加答案。 发现是集合问题,那我想什么 polylog,考虑将两种做法结合在一块。 令 \( 阅读全文
posted @ 2026-01-13 19:59 Alexande 阅读(3) 评论(0) 推荐(0)
摘要: 将区间 hash 转化为后缀 hash 和,发现本质要求若干对位置的 hash 值不等,注意到我们是可以在此基础上在每个位置任意填数,总能找到一对逆回去的方式。 那么根据鸽巢原理,若 \(mod > n\),必定能将每个位置上都填上一个不同的数。 否则,问题等价于能否染不超过 \(mod\) 种颜色 阅读全文
posted @ 2026-01-13 17:27 Alexande 阅读(6) 评论(0) 推荐(0)
摘要: 没有调出来,不过应该是对的。 首先对于这种区间排序性质的题目都很熟悉了吧,就是相当于每次往堆里加入一个数再将最小的数拿出来,不断执行这个操作。 先考虑 \(k = n - m + 1\),那么考虑这个操作最后会是将整个序列最大的 \(m - 1\) 个数保留在堆里,也就是序列最后 \(m - 1\) 阅读全文
posted @ 2026-01-13 16:32 Alexande 阅读(2) 评论(0) 推荐(0)
摘要: 考虑一下矩阵乘法的现实意义。 相当于是建图,\(A^i_{x, y}\) 是走了恰好 \(i\) 步 \(x \to y\) 的方案数。 题目是在问你走无限步后能否固定走的路线。 那么显然先缩点,如果一个强连通块非环,那么必然会跪下,如果存在两个强连通块互相可达,显然分配无规律,也是无解,可以证明这 阅读全文
posted @ 2026-01-13 12:00 Alexande 阅读(6) 评论(0) 推荐(0)
摘要: 很经典的区间分段问题,我们从以下几个角度入手: 连续区间。 区间长度特性。 利用调整法规约成简单形式。 转化贡献代表元。 ...... 总之这种题目必定可以转化为上面几种条件之一,本题也是如此。 首先注意到答案取模,这很有可能就是题目在提示我们本题有严格唯一确定最优答案的方法,我们不应该过度的往 D 阅读全文
posted @ 2026-01-13 11:08 Alexande 阅读(4) 评论(0) 推荐(0)
摘要: 二项式定理,恰好转至少,我们现在只需要填入我们规定出来的极大位置即可。 首先按照从小到大的顺序选出 \(i\) 个位置的方案数是 \((n - i)(m - i)(l - i)\),你考虑一个事情,当我选择最小的那个数时,会有一些数小于当前位置,枚举到第二小的位置时,除了坐标相同的之前未计算过的位置 阅读全文
posted @ 2026-01-13 08:19 Alexande 阅读(9) 评论(0) 推荐(0)
摘要: 考虑分两种情况,一种是值域不会超过 \(a_n\),一种是值域任意大。 你思考为啥不能直接做后面的情况,因为如果 \(b_n\) 是 inf 你就跪下了。 很容易将问题从前缀变为取连续段异或,因此第一部分用个 DP 就做完了。 考虑第二部分,既然值域都任意大了,那么此时相邻连续段不必满足大小关系,问 阅读全文
posted @ 2026-01-12 08:53 Alexande 阅读(2) 评论(0) 推荐(0)
摘要: 注意到本质要求重排差分数组,使得前缀异或单调递增。 考察当前往序列末尾放入一个数 \(x\),此时 \(x\) 的最高位上是不能有 \(1\) 的,不然就炸了,发现这是充要条件。 因此将数按照最高位从小到大排序,每次看一个数能不嫩放入,能放则放,最后不断的跑这个操作,就可以判断了。 我们记录每一位一 阅读全文
posted @ 2026-01-11 21:28 Alexande 阅读(7) 评论(0) 推荐(0)
摘要: 可以证明,如果两个序列里都有非前导 \(0\),一定可以将贡献更小的那个序列里的 \(0\) 移动到另外一个序列上,因为两种方案总有一种使得其更优。 那么就很简单了,看有多少个 \(1\) 被划分为一组,剩下的 \(1\) 肯定取最后面的,注意到任意两种方案位数不同,因此比较大小只需比较位数即可,特 阅读全文
posted @ 2026-01-11 19:47 Alexande 阅读(5) 评论(0) 推荐(0)
摘要: 非常具有价值的一个题目。 首先对于线段问题,我们希望能够用一些常见的手法给计数,发现答案要求是偶数减奇数,可以想一些在偶数和奇数中同时出现的情况,这样我们就可以不算这种情况,比如说: 如果存在一个区间 \([l_1, r_1]\) 包含了 \([l_2, r_2]\),此时对于所有选了 \([l_1 阅读全文
posted @ 2026-01-09 21:30 Alexande 阅读(1) 评论(0) 推荐(0)
1 2 3 4 5 ··· 37 下一页