摘要: 普通莫队 适用范围 问题支持离线。 没有修改只有查询。 可以从任意状态下的答案推导到相邻状态的答案并所花时间较少。 具体的,能从 [l,r] 的答案推导出 [l+1,r]、\(\left[ l, r - 1 \right]\ 阅读全文
posted @ 2025-04-02 23:34 Archippus 阅读(36) 评论(0) 推荐(0)
摘要: 理解了最高赞题解做法做出的这道黑题,特此留念。 SGT(替罪羊树) + SGT(线段树) 首先,直接递归比较两个「数」是非常麻烦的,考虑用类似哈希的思想将每一个「数」对应成一个实数(不一定是整数),接下来的比较就变得简单了。 但是问题是该如何对每个「数」赋一个值呢? 我们先把所有的「数」放到一棵平衡 阅读全文
posted @ 2025-02-21 22:53 Archippus 阅读(4) 评论(0) 推荐(0)
摘要: 正经原理 我们学过了很多平衡树,像 Splay、Treap 等,无一是用很高端的方法维持树的平衡,这不是一般人能想到的。 像分块这种优化暴力的算法就很容易想到。 不如想想如何暴力维持树平衡。 每次修改操作之后,如果「足够乱」,就将树拍扁(取中序遍历),再提起来(构建线段树式的树高平衡二叉树)。 关键 阅读全文
posted @ 2025-02-07 22:55 Archippus 阅读(10) 评论(0) 推荐(0)
摘要: 引入 一个数列,单点修改(加),区间查询(和)。 上述问题有很多种解法,如树状数组、分块、平衡树等,今天的主题是著名的线段树。 正题 (不确保按难度升序排序,自己看着目录调顺序吧) 线段树基本原理 因为需要区间查询,所以我们希望有一些捷径能将部分的数的和提前算好,并能够直接上手用,这样可以节省不少的 阅读全文
posted @ 2025-01-29 13:17 Archippus 阅读(55) 评论(0) 推荐(0)
摘要: 复盘 A,把所有可能的答案列举出来,最后字符串判等即可…… B,没什么难度,码完交上去 WA 3 个点。 不知道是不是精度问题,开了 long double,WA 1 个点。 调调调,发现 eps 设大了,改成 1012 过了。 C 算什么东西,随便写写就过了。 D,一眼看到数据范围 阅读全文
posted @ 2025-01-26 17:35 Archippus 阅读(20) 评论(0) 推荐(0)
摘要: (逆天罚时局) 复盘 看 A,一眼简单题。如果先手拿到的就是 3 的倍数,则后手必胜,否则先手可以只走一步达成 3 的倍数(最开始我还想反了,导致 00:05)。 不想开 B,看 C,我相信它有更简单的解法但我 dp 也能过。 B 马上切了没什么好说的。 D 直接分析一句话题意,然后 阅读全文
posted @ 2025-01-21 09:41 Archippus 阅读(26) 评论(0) 推荐(1)
摘要: 元方树。 下文除特殊强调外,所有图皆为无向图。 引入 割点:在图中,删除某个点后,导致图不再连通的点。 点双连通:在一张图中,取两个点 uv,无论删去哪个点(除 uv 自身外),uv 都能连通,我们就说 uv 点双连通。 点 阅读全文
posted @ 2025-01-20 09:48 Archippus 阅读(37) 评论(0) 推荐(1)
摘要: 假定原点为圆心。 我们只考虑点在第一象限的情况,剩下的情况同理。 因为圆心是原点,所以在圆内的点的横坐标一定在 r 之内。 枚举点的横坐标 x+12,二分最大的 y+12,使得点 \((x + \frac{1}{2}, y + \f 阅读全文
posted @ 2025-01-19 10:45 Archippus 阅读(78) 评论(0) 推荐(2)
摘要: 优雅的暴力。 引入 link。 这道题显然可以用线段树、树状数组做,但如果我偏不用这些数据结构呢? 我们知道,暴力修改和查询最坏是 O(n) 的,这样肯定会挂掉。 那该怎么办呢? 正题 分块 考虑将序列分成若干块,我们设每块长为 B。 对于每次查询 \(\left 阅读全文
posted @ 2025-01-18 14:27 Archippus 阅读(202) 评论(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 阅读(12) 评论(0) 推荐(0)
点击右上角即可分享
微信分享提示