Loading

上一页 1 2 3 4 5 6 7 8 9 10 ··· 13 下一页
摘要: 来个乱搞。 思路 考虑分治。 对于最裸的暴力。 我们可以调用 solve(l, r) 进行查询。 假如这个区间的众数的出现次数是区间长度,那么可以直接退出,否则我们可以继续分治。 我们把这个暴力进行加工一下。 我们知道 \(l\sim r\) 的区间众数后。 查询 \(l\sim mid\) 的区间 阅读全文
posted @ 2024-02-22 20:15 JiaY19 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 非常好题目。 思路 可以发现限制最严的一定是两个叶子的联通性。 我们不妨把一个叶子向外起到联通性作用的路径称为有用的路径。 也就是这个叶子走这条路径一定可以两步以内到达任意点。 这个路径集合有什么作用呢。 有一个性质:整个集合的路径的交最终会形成一个连通块。 那么我们就可以进行求解方案数。 考虑容斥 阅读全文
posted @ 2024-02-21 21:10 JiaY19 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 比较好的莫队题。 思路 考虑使用莫队解决这个问题。 我们对于每个元素,统计 \(b_i=\sum_{j=1}^i [a_j<a_i]\)。 那么我们每一次新加入一个元素产生的贡献为 \(\sum_{j=l}^r [a_j=a_r](b_r-b_j)\)。 发现我们只需要统计 \(\sum_{j=l} 阅读全文
posted @ 2024-02-15 22:10 JiaY19 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 非常好题目,使我代码长度起飞。 思路 发现 \(K\) 只有三种取值。 考虑分类讨论。 k=1 容易发现只需要求一个端点是 \(1\) 的最长链。 k=3 考虑这个时候我们将有一个遍历整个树的方案。 考虑递归的处理整个问题。 我们从该节点跳到它一个儿子的儿子。 然后递归处理这个儿子的儿子。 然后再跳 阅读全文
posted @ 2024-02-15 22:09 JiaY19 阅读(71) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2024-01-21 14:11 JiaY19 阅读(0) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2024-01-19 11:38 JiaY19 阅读(1) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2024-01-02 21:44 JiaY19 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 思路 比较典的 ODT 题目。 发现排序是一个非常有性质的操作。 它对区间的更改与颜色段均摊差不多。 那么我们可以想到用 ODT 来维护这一整个序列。 具体的,区间排序操作可以用 ODT 维护每次排序产生的段,每段用线段树维护排序后的结果。 每次修改就可以进行线段树的分裂与合并。 如何查询。 可以发 阅读全文
posted @ 2023-12-29 16:20 JiaY19 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 题解怎么都是用暴力日过去的啊。 思路 考虑根号分治,设阈值为 \(B\)。 对于第二维出现次数超过 \(B\) 的,我们可以在修改时暴力更改,这部分复杂度为 \(O(\frac{nm}{B})\)。 对于第二维出现次数小于 \(B\) 的,我们可以在修改是打标记,查询时遍历一遍,这部分的复杂度为 \ 阅读全文
posted @ 2023-12-29 16:19 JiaY19 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 思路 看到时限这么大,考虑暴力做法。 我们将原序列分为 \(\text{B}\) 个块,每个块类似线段树三一样的维护 \(add,maxadd\),表示这一块需要加的值,加的值的历史最大值。 同时对于每个数可以维护一个真实值与一个历史最值。 那么下传标记可以写成这样。 inline void pus 阅读全文
posted @ 2023-12-29 16:18 JiaY19 阅读(11) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 13 下一页