专栏文章
P11381
个人记录参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @miq2jui7
- 此快照首次捕获于
- 2025/12/03 21:54 3 个月前
- 此快照最后确认于
- 2025/12/03 21:54 3 个月前
题意
给定一个 DAG,每个点有 和 两个权值,保证 互补相同, 互不相同,有 次操作为以下三种:
- 交换 ;
- 交换 ;
- 给定 ,求所有 满足 可以到达 且 的 中 的最小值。没有 满足条件则输出 。
思路
考虑 且只有 操作的情况是 DAG 可达性判断,所以不会低于 ,时空限制也体现了这一点;带修求区间内的最大值也无法和 数据结构很好的结合,所以考虑定期重构,考虑每 次操作重构。现在问题变成两个部分:会修改的 和不会修改的 。
会修改的 只有 个,那么维护每个点能到的这类点的 bitset,可以做到 。修改显然可以 处理,每次询问的时候枚举这些点判断是否可行,可以做到 。
对于不会修改的 ,维护每个点的答案有点困难,所以考虑只计算被询问到的点,这样的点也有 个。使用 bitset 求出每个点是否能被这些点到达的复杂度也是 的。为了解决 在一个区间内的限制,从小往大枚举 时动态维护当前的 满足了哪些询问的限制的 bitset,这可以做到 。最后枚举 ,维护答案 的询问,每次当 bitset 改变时更新,这是 的。
最终总复杂度为 的,理论上来说 取 时最快,但是我们发现 的速度远比 快,而 bitset 在大小更大时相对较快(有更小的常数)且 常数较大,所以可以把 开到很大。我的考场代码开了 。
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...