摘要: AB 较为简单,不讲 C 简化题意 给定一个长度为 \(n\) 的数组 \(A\),你可以选择一段长度不大于 \(k\) 的区间按升序排序,判断排序后能否使整个数组 \(A\) 升序排列。 题解 前置知识:排序 想要知道排序所需要的区间,我们只需要知道最小和最大的无序位置。因此,用一个 \(b\) 阅读全文
posted @ 2026-10-04 07:57 tangkaiming 阅读(9) 评论(0) 推荐(0)
摘要: AB 比较简单,不讲。 C 简化题意 给定字符串 \(S,T\),有 \(Q\) 次询问,每次给定 \(L,R\),询问 \(T\) 是否为 \(S_{L,L+1,\cdots,R-1,R}\) 的子串。 题解 前置知识:前缀和,字符串 没有修改操作,我们考虑提前求出 \(T\) 在 \(S\) 中 阅读全文
posted @ 2026-09-27 15:04 tangkaiming 阅读(12) 评论(0) 推荐(0)
摘要: AB 比较简单,不讲。 C 我们使用一个数组 \(maxn\) 记录当前最大的前三个数,按从大到小的顺序排列,分三种情况考虑。(假设当前新加入的值是 \(a\)。) \(a \ge maxn_1\):将 \(maxn_2\) 赋给 \(maxn_3\),\(maxn_1\) 赋给 \(maxn_2\ 阅读全文
posted @ 2026-09-22 07:49 tangkaiming 阅读(67) 评论(0) 推荐(0)
摘要: 高斯消元,一种十分实用的工具。 学高斯消元,首先需要知道什么是线性方程组: \[\left\{\begin{matrix} a_{11}x_1+a_{12}x_2+ \dots +a_{1m}x_m=b_1 \\ a_{21}x_1+a_{22}x_2+ \dots +a_{2m}x_m=b_2 \ 阅读全文
posted @ 2026-09-18 15:38 tangkaiming 阅读(17) 评论(2) 推荐(0)
摘要: 简化题意 给定一棵 \(n\) 个节点的树,\(1\) 号节点为根。初始所有节点未种树。 每天可以选择一个未种树且与已种树节点相邻的节点种树(第一天只能种 \(1\) 号节点)。若所有节点已种树,则当天不操作。 对于节点 \(i\),种下后第 \(x\) 天(从第一天算起)高度增加 \(\max(b 阅读全文
posted @ 2026-09-17 13:25 tangkaiming 阅读(25) 评论(0) 推荐(1)
摘要: KMP 算法学习笔记 KMP 算法由唐纳德·克努斯(Donald E. Knuth)、詹姆斯·莫里斯(James H. Morris)和维克托·普拉特(Victor R. Pratt)共同提出,三人姓氏首字母均为 K、M、P,因此该算法被称为 KMP 算法。 KMP 算法,我们通常用来字符串比较,可 阅读全文
posted @ 2026-09-17 09:22 tangkaiming 阅读(13) 评论(0) 推荐(0)
摘要: 哈希 所谓串哈希,就是通过一系列方法把一个字符串转成一个数字,方法类似进制转换,我们把这个数字称为哈希值,比如说字符串 \(s\),我们设 \(H(s)\) 就是它的哈希值,那么 \(H(s)=\sum_{i=0}^{|s|-1}s[i]\) 就是一个非常基本的哈希。 哈希冲突 所谓哈希冲突就是表示 阅读全文
posted @ 2026-09-10 14:00 tangkaiming 阅读(13) 评论(0) 推荐(0)
摘要: 暴力 暴力枚举使用哪个二元组去替换这个 \(s\),我们采用系统函数 \(find\) 和 \(substr\),每次在 \(t1\) 中寻找一个 \(s1\) 替换成 \(s2\) ,判断是否会变成 \(t2\)。同时会有几个不需要处理的情况,需要特判,\(1.\) \(|t1| != |t2|\ 阅读全文
posted @ 2026-09-08 13:04 tangkaiming 阅读(56) 评论(2) 推荐(1)
摘要: 初赛常考题目:由先序遍历和中序遍历构建二叉树 解题思路 具体的,我们会从先序遍历中取出第一个数,即当前树的根。 拿样例出来: 先序遍历:1 3 5 6 4 2 中序遍历:3 5 1 4 6 2 这里 1 就是我们的根,然后根据中序遍历将树分成了两个部分: 先序遍历:1 | 3 5 | 6 4 2 中 阅读全文
posted @ 2026-08-21 16:17 tangkaiming 阅读(16) 评论(0) 推荐(0)
摘要: 废话 感觉并没有紫题难度,比较简单。不过在拆分询问的时候有些麻烦。 题目传送门 P3997 [SHOI2013] 扇形面积并 题意过于简单,这里就不简化了。 题解 首先根据题意,我们先将题目中给定的图给拆分成 \(2 \times m\) 个区域 (借用了一下这篇 文章 的图片)。 然后我们可以将这 阅读全文
posted @ 2026-08-20 16:23 tangkaiming 阅读(16) 评论(0) 推荐(0)