ABC260总结

比赛地址

比赛情况

排名:412 / 7225
AC:5 / 8

题目分析

A

签到题

B

模拟题,按题意模拟即可

C

类似dp,从小往大更新,先更新蓝的再更新红的

D

显然,无论每堆卡片如何变化,卡片从前往后始终满足单调性,于是可以二分它在哪堆卡片

如果这堆卡片放完,可以直接跳过,这一步可以用并查集优化

E

枚举左端点 \(i\),计算右端点最左在哪,假设在 \(mx\),右端点的取值范围在 \([mx,m]\)

\(mx\) 就是所有 \((a_i, b_i)\) 中每一对的最小值(且大于 \(i\))的最大值,即 \(mx=\max_{j=1}^n( \text{[大于等于 }i\text{ 的较小值]}(a_j,b_j))\),如果 \(a_j,b_j\) 都比 \(i\) 小,则从 \(i\) 往后的数都不能作为左端点

维护 \(mx\) 可以用优先队列,弄个小根堆,如果堆顶元素等于 \(i\),则pop掉,把对中较大值放进去。如果其本身就是最大值,直接break掉

比赛总结

打得挺好,就是E题因为数组开小wa了一发,有点可惜

上来做A,3秒看完,1min过

B题纯模拟,就是代码有点长,8min时过

C题一开始想打递归,发现不行,花了点时间,改成递推在15min时过了

D题一开始想不到怎么做,在纸上模拟了一下样例,发现单调性,显然二分,再套个并查集,42min时过

E看完题就想枚举左端点,然后推了推就出来了,57min时过,可惜因为数组开小re一发

后面没看,但看通过人数应该没以前那么难

posted @ 2022-07-17 21:41  zhangtingxi  阅读(93)  评论(0编辑  收藏  举报