欢迎光临散文网 会员登陆 & 注册

[ABC107D] Median of Medians

2023-08-08 21:16 作者:BNU_ACM  | 我要投稿
  • 检查是否有(m+1)/2个区间的中位数>=x,其中m为区间个数 

  • 设b为 b[i]=a[i]>=x?1:-1这样的一个数组,则有如下的等价check 

  • b数组区间和>=0的区间个数 >= (m+1)/2. 

  • 下面需要用权值树状数组,用前缀和的值作为树状数组的索引.

  • 当扫到j的时候,在树状数组上查询pre[j],得到有多少个pre[i]是<=pre[j]的,而因为是从左向右扫,所以i<j,即[i+1,j]是满足区间和>=0的区间。 

  • 所以这样扫一遍,就用n\log n的复杂度求得了上述区间个数


[ABC107D] Median of Medians的评论 (共 条)

分享到微博请遵守国家法律