专栏文章

题解:CF2056D Unique Median

CF2056D题解参与者 3已保存评论 3

文章操作

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

当前评论
3 条
当前快照
1 份
快照标识符
@miqcc1wk
此快照首次捕获于
2025/12/04 02:28
3 个月前
此快照最后确认于
2025/12/04 02:28
3 个月前
查看原文
妙妙题,参考了官方题解。
考虑一个子段 [l,r][l,r] 什么时候是坏的。首先必要条件显然就是 rl+1r-l+1 是偶数。那么假设 [l,r][l,r] 的中位数是 xx,如果这个子段是坏的,那么一定有 rl+12\frac{r-l+1}{2} 个数 x\le xrl+12\frac{r-l+1}{2} 个数 >x>x,这样就满足条件了。
接下来考虑怎么计数。因为 1ai101 \le a_i \le \color{red}\bf{10},所以我们从这里入手。考虑枚举中位数是 xx 时的答案。我们可以建立 bb 数组,如果 aixa_i \le x,那么 bi=1b_i=-1;否则 bi=1b_i=1。那么只要有一个子段的和是 00,就说明这个子段是坏的了。那么数一下即可。时间复杂度 O(nV)O(nV)VV 是值域,这里 V=10V=10

评论

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

正在加载评论...