上一页 1 ··· 5 6 7 8 9 10 11 下一页
摘要: Update 2022/2/3:感谢 @aresword 大佬的建议,对文章中一个不严谨但是能过题的地方进行修改。 这是一道数学题。 前置知识: 对于一个数 \(x\),我们可以将其唯一分解成 \(p_1^{c_1} \times p_2^{c_2} \times ... \times p_k^{c 阅读全文
posted @ 2022-04-14 21:04 Plozia 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 1.概述 KMP 算法是一种字符串算法,具体解决的问题为字符串匹配问题: 给出一个模式串 \(t\),文本串 \(s\),请问 \(t\) 是否为 \(s\) 的字串 / \(t\) 在 \(s\) 中出现了几次等等问题。 后文中无特殊说明,\(n\) 为文本串 \(s\) 的长度,\(m\) 为模 阅读全文
posted @ 2022-04-14 21:01 Plozia 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 1.概述 康托展开,是全排列问题中常用的一种算法。 康托展开:已知一个 \(n\) 阶全排列 \(a\),求出这是第几个全排列(按照字典序排序)。 2.实现 例题 康托展开的公式:\(a_1 \times (n - 1)! + a_2 \times (n - 2)! +...+ a_{n - 1} 阅读全文
posted @ 2022-04-14 20:59 Plozia 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 这道题是一道二维 LIS 问题。 我们知道,一维的 LIS 有 \(O(n^2)\) 和 \(O(n \log n)\) 两种解法。考虑到这道题要输出方案,而且 \(1 \leq n \leq 5000\),那么在这道二维的 LIS 问题当中我们可以使用 \(O(n^2)\) 的算法来解决这道题。 阅读全文
posted @ 2022-04-14 20:57 Plozia 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 这道题有一点思考难度,需要根据题意与样例来思考。 首先我们考虑 \(a_i\) 在几次之后会降为 0。 接下来的分析只考虑这个柱子上面被摧毁的情况,不考虑左右的柱子高度为 0 的影响。 如果 \(a_i \leq a_{i - 1}\) 且 \(a_i \leq a_{i + 1}\),那么只有最上 阅读全文
posted @ 2022-04-14 20:56 Plozia 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 这道题看似可以线段树乱搞,但是真正用线段树就会发现根本没有用。 因此我们考虑根号算法。 难道是分块?错!还有一种根号算法——根号分治。 根号分治的思想就是设定阈值 \(S\) ,大于阈值的暴力计算,小于阈值的快速计算,而取 \(S = \sqrt n\) 时最优(不要问我怎么证明)。 那么这道题,我 阅读全文
posted @ 2022-04-14 20:53 Plozia 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 这道题好像很烦,我第一眼看过去确实没有任何思路。 但是仔细分析题目后,我们会发现: \(c=1\) 时,答案为 0,但是好像没有这个点? \(c > n\) 时,答案为序列总和。 \(c = n\) 时,答案为序列总和减去最小值。 \(1 < c < n\) 且 \(n < 2 \times c\) 阅读全文
posted @ 2022-04-14 20:50 Plozia 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 看到长这样的题目,显然是莫队板子题。 但是不知道为什么很多人写的都是 \(2 \times cnt_x + 1\) 之类的?好像直接先减再加不就好了?公式都不用推。 注意指针顺序以及 long long。 目前 CF 的机子上已经不需要用 %l64d 输出 long long,直接 %lld 输出即 阅读全文
posted @ 2022-04-14 20:49 Plozia 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 这道题给各位一种与之前不一样的做法。 首先显然可以使用并查集维护连通块个数,但是我们知道并查集 不支持删除,而题目是 区间询问,所以: 不支持删除+区间询问=回滚莫队! 所以这道题可以用回滚莫队通过,没学过的可以看看 这篇博文。 那么对于这题,取块长 \(block = n^{\frac{2}{3} 阅读全文
posted @ 2022-04-14 20:49 Plozia 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 一些 update udpate 2021/1/17:修正了文章中的一些不影响理解的语文问题。 update 2021/1/25:加入 Splay 的代码简化。 1.概述 在 数据结构专题-学习笔记:无旋平衡树(替罪羊树,fhq Treap) 中我们着重讲解了两种无旋平衡树:替罪羊树,FHQ Tre 阅读全文
posted @ 2022-04-14 20:37 Plozia 阅读(555) 评论(0) 推荐(0) 编辑
摘要: update update on 2022/10/28:发现文中对引用的描述不是很准确,但是比较多也不想改了,大家忽略引用就好。 1.概述 平衡树,是一种高级数据结构,是基于二叉查找树的一种数据结构。 对二叉查找树不理解的读者这里有一个作者的简单总结: 对于一棵二叉查找树(又名 BST): 这是一棵 阅读全文
posted @ 2022-04-14 20:35 Plozia 阅读(246) 评论(3) 推荐(0) 编辑
摘要: 一些 update update 2021/1/2:加入代码解释。 update 2021/1/13:发现『2.3 左旋』图片有重大失误,现在已经更正,对各位读者带来的不便深表歉意。 1.概述 树旋转,是 AVL 树和 Splay 等平衡树控制平衡的一种办法,同时也在别的领域有着重要的应用。 那么什 阅读全文
posted @ 2022-04-14 20:35 Plozia 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 线段树好题。 首先,如果做过 P4145 上帝造题的七分钟2 / 花神游历各国 ,那么这道题还是十分好想的。 我们需要意识到一个问题:对于 \(1,2\) 这两个数而言,我们对它们修改是没有意义的,\(1\) 还是 \(1\),\(2\) 还是 \(2\)。 那么我们再想想,对于 \(a_i\) 几 阅读全文
posted @ 2022-04-14 20:33 Plozia 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 1. 前言 Slope Trick,是一种优化 DP 的方式,这个方式目前好像并不盛行,但是以前好像还挺流行的(?),网上讲 Slope Trick 的博客好像也不多(?)。 (?) 表示笔者持怀疑态度,也就是说这句话可能是错的。 现在笔者得知的能够使用 Slope Trick 的题目并不多,这里主 阅读全文
posted @ 2022-04-13 21:48 Plozia 阅读(2311) 评论(1) 推荐(3) 编辑
摘要: 回顾 在 数据结构专题-专项训练:线段树2(GSS1-5) 中我们见识了 GSS1-5 的题目如何用线段树解决,那么现在就让我们看一看由线段树引申的算法——可持久化线段树。 那么闲话不多说,开始吧! 1.概述 1.可持久化是个啥? 首先让我们看看『可持久化』是什么意思。 在之前我们做到的线段树的所有 阅读全文
posted @ 2022-04-13 21:45 Plozia 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 一些 update update 2020/12/29:感谢机房 hxh 大佬指出问题,GSS5 的分类讨论 1 有点问题,现在已经更正,对各位读者造成的影响深表歉意。 回顾 在 数据结构专题-专项训练:线段树1 中我们见识了线段树的各种神奇应用,同时了解了线段树题目的五部曲: 我们需要维护什么? 阅读全文
posted @ 2022-04-13 21:44 Plozia 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 一些 update update 2020/12/29:现根据个人实际情况对文章的安排做出了一定的修改,对各位读者带来的不便深表歉意,现在已经更新排版。 1.概述 线段树,顾名思义,是一种基于树的数据结构。线段树跟分块一样,也是用来支持区间操作的(比如区间加,区间求和,区间求 \(max\) 等等) 阅读全文
posted @ 2022-04-13 21:43 Plozia 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 回顾: 上一篇博文 数据结构专题-学习笔记:线段树 中,我们学会了线段树的基础操作。那么接下来,让我们看看线段树又能玩出什么花样。 线段树作为一种数据结构,其实题目都有一定的套路性: 我们需要维护什么? 是 $sum$ ,还是 $max,min$ ?或是别的一些奇怪的东西? 线段树的每个叶子节点是什 阅读全文
posted @ 2022-04-13 21:43 Plozia 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 本题首先需要注意到几个性质: \(x \oplus y \leq x+y\) 。 \(x \oplus y = z\) 等价于 \(x \oplus z = y\) 。 搞清楚这两点,题目就好做了。 首先,对于满足要求的连续区间 \([l,r]\) ,如果加入数 \(a_{r+1}\) 之后不平衡了 阅读全文
posted @ 2022-04-13 21:42 Plozia 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 首先看完本题,最直接的想法就是——爆搜! 但是, \(2^{35}\) 让我们望而却步,因此我们需要考虑一定的优化。 而本题的优化是十分经典的 折半搜索 (Meet in middle) 算法。 折半搜索的主要思路就是:将序列裂成两半搜索,然后合并答案。 对于这道题,我们首先对 \([1,\dfra 阅读全文
posted @ 2022-04-13 21:41 Plozia 阅读(34) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 下一页