专栏文章

题解:P11340 [COI 2019] TENIS

P11340题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@minhbiml
此快照首次捕获于
2025/12/02 02:25
3 个月前
此快照最后确认于
2025/12/02 02:25
3 个月前
查看原文

[COI 2019] TENIS

数据结构题。
考虑暴力,每次选择一个数和一个维度将所有那一维小于它的数对加入(即能战胜的集合),最终所有数都被选上就说明合法。时间复杂度根据实现方式为单次询问 O(nlogn)O(n2)\operatorname{O}(n\log n)\sim \operatorname{O}(n^2)
考虑如何快速 check。将三场比赛中的选手按照名次从 11nn 排列,根据上面的 check 方案,可以注意到在这个表格中一定是一段前缀中出现过的选手才有可能夺冠。
假设这个前缀长度为 pp ,对于每个人,设 lil_i 表示其排名最靠前为多少,rir_i 表示其排名最靠后为多少。如果出现了 lip<ril_i\le p<r_i 就说明 ii 是可以被战胜的,pp 就应该至少为 rir_i。所以不存在 ii 使得 lip<ril_i\le p<r_i
直接做是 O(nq)\operatorname{O}(nq) 的,考虑用数据结构维护上述条件。将第 lil_i 个位置加上 11,第 rir_i 个位置加上 1-1,对其做前缀和,那么 pp 就是第一个前缀和为 00 的地方。每次修改操作就是对后缀加上 11,查询操作就是查询第一个为 00 的位置。用在线段树上二分可以做到 O(qlogn)\operatorname{O}(q\log n)

评论

0 条评论,欢迎与作者交流。

正在加载评论...