Codeforces Round #703 (Div. 2) D . Max Median 二分 +思维
生活随笔
收集整理的这篇文章主要介绍了
Codeforces Round #703 (Div. 2) D . Max Median 二分 +思维
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
传送门
题意: 给定一个数组和k,求一段连续区间中位数最大值,连续区间长度>=k。
如果=k的话可以直接秒了,这里是>=k,我们可以通过二分让后利用>=k这个条件来检查答案。
二分中位数,假设当前二分的为midmidmid,那么a[i]>=mida[i]>=mida[i]>=mid的数可以变成111,a[i]<mida[i]<mida[i]<mid的数变成−1-1−1,现在问题就变成了寻找长度>=k且值为正的序列。这个问题可以用前缀和解决,我们枚举序列的结尾,假设当前枚举到iii,那么只需要check一下pre[i]−mi[i−k]>0pre[i]-mi[i-k]>0pre[i]−mi[i−k]>0即可,mi为前缀和最小值,这样在保证了序列长度>=k的同时检查其是否合法。
总结
以上是生活随笔为你收集整理的Codeforces Round #703 (Div. 2) D . Max Median 二分 +思维的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: steam 平台 饥荒 联机版 Linu
- 下一篇: Codeforces Round #70