Codeforces Round #703 (Div. 2)D. Max Median(前缀和)
关于这题,首先想了一个关于上取整中位数的求法:
大体做法如下,二分答案mid,对于1~n的所有数判断其的大小,如果大于等于mid,则令值为1,否则为1,统计前缀和,求区间时为了保证长度大于等于k,动态维护(使得长度大于等于k部分)前缀和的最小值即可.只要长度大于等于k的区间和大于等于0即可.
但是题目是下取整,在偶数的情况下并不适用,即偶数的条件要大于等于1.奇数的条件要大于等于0,那么考虑取奇数位和偶数位的最小值,就可以了。
改动如下:
#include <bits/stdc++.h>
usi
原创
2021-02-20 15:32:38 ·
120 阅读 ·
0 评论