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一发
后面没看,但看通过人数应该没以前那么难
本文来自博客园,作者:zhangtingxi,转载请注明原文链接:https://www.cnblogs.com/zhangtingxi/p/16488501.html