摘要: 正经原理 我们学过了很多平衡树,像 Splay、Treap 等,无一是用很高端的方法维持树的平衡,这不是一般人能想到的。 像分块这种优化暴力的算法就很容易想到。 不如想想如何暴力维持树平衡。 每次修改操作之后,如果「足够乱」,就将树拍扁(取中序遍历),再提起来(构建线段树式的树高平衡二叉树)。 关键 阅读全文 »
posted @ 2025-02-07 22:55 Archippus 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 引入 一个数列,单点修改(加),区间查询(和)。 上述问题有很多种解法,如树状数组、分块、平衡树等,今天的主题是著名的线段树。 正题 (不确保按难度升序排序,自己看着目录调顺序吧) 线段树基本原理 因为需要区间查询,所以我们希望有一些捷径能将部分的数的和提前算好,并能够直接上手用,这样可以节省不少的 阅读全文 »
posted @ 2025-01-29 13:17 Archippus 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 复盘 A,把所有可能的答案列举出来,最后字符串判等即可…… B,没什么难度,码完交上去 WA 3 个点。 不知道是不是精度问题,开了 long double,WA 1 个点。 调调调,发现 eps 设大了,改成 1012 过了。 C 算什么东西,随便写写就过了。 D,一眼看到数据范围 阅读全文 »
posted @ 2025-01-26 17:35 Archippus 阅读(10) 评论(0) 推荐(0) 编辑
摘要: (逆天罚时局) 复盘 看 A,一眼简单题。如果先手拿到的就是 3 的倍数,则后手必胜,否则先手可以只走一步达成 3 的倍数(最开始我还想反了,导致 00:05)。 不想开 B,看 C,我相信它有更简单的解法但我 dp 也能过。 B 马上切了没什么好说的。 D 直接分析一句话题意,然后 阅读全文 »
posted @ 2025-01-21 09:41 Archippus 阅读(16) 评论(0) 推荐(1) 编辑
摘要: 元方树。 下文除特殊强调外,所有图皆为无向图。 引入 割点:在图中,删除某个点后,导致图不再连通的点。 点双连通:在一张图中,取两个点 uv,无论删去哪个点(除 uv 自身外),uv 都能连通,我们就说 uv 点双连通。 点 阅读全文 »
posted @ 2025-01-20 09:48 Archippus 阅读(17) 评论(0) 推荐(1) 编辑
摘要: 假定原点为圆心。 我们只考虑点在第一象限的情况,剩下的情况同理。 因为圆心是原点,所以在圆内的点的横坐标一定在 r 之内。 枚举点的横坐标 x+12,二分最大的 y+12,使得点 \((x + \frac{1}{2}, y + \f 阅读全文 »
posted @ 2025-01-19 10:45 Archippus 阅读(44) 评论(0) 推荐(2) 编辑
摘要: 优雅的暴力。 引入 link。 这道题显然可以用线段树、树状数组做,但如果我偏不用这些数据结构呢? 我们知道,暴力修改和查询最坏是 O(n) 的,这样肯定会挂掉。 那该怎么办呢? 正题 分块 考虑将序列分成若干块,我们设每块长为 B。 对于每次查询 \(\left 阅读全文 »
posted @ 2025-01-18 14:27 Archippus 阅读(182) 评论(0) 推荐(4) 编辑
摘要: 推柿子。 1x+1y=1n!x+yx×y=1n!n!×(x+y)=x×y\[x \times y - n!x - n 阅读全文 »
posted @ 2025-01-12 22:20 Archippus 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 题意 link. 题解 我们充分发扬人类智慧。 考虑到可能连锁爆炸,我们不能通过一个单纯的二分来解决问题。 考虑 dp。 记 f(i) 为第 i 个点爆炸,最远能引爆到哪个坐标小于它的点。 g(i) 为第 i 个点爆炸,最远能引爆到哪个坐标大于它的点。 我们以 阅读全文 »
posted @ 2025-01-12 16:37 Archippus 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 引入 link。 我们可以分析出上题就是带修改的最大子段和。 遇到这种类型的题目应该想到用线段树。 实现 对于原数列,先建起一棵线段树,每个节点包含 最大前缀、最大后缀、最大字段和、区间和 信息。 当你明确一道题是线段树时,要先思考 pushup 和 pushdown 怎么写,因为剩下的都是差不多的 阅读全文 »
posted @ 2025-01-12 16:35 Archippus 阅读(111) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示