【ybtoj 冲刺 NOIP2021 模拟赛 B 组 Day8】【二分】中位数
题目
解题思路
我是一个小菜鸡,怎么暴力怎么来
两个二分,然后AC了???
第一个大二分,枚举中位数
预处理出中位数的位置w
如果目前枚举的中位数有大于等于w个数<=这个中位数,说明它在真正的中位数后面或就是真的中位数
第二个小二分,就是要找到有多少个差值比枚举的中位数小
要特批一下,如果一共有偶数个差值,中位数要找出两个,然后相机除二
代码
#include<algorithm>
#include<iostream>
#include<cstdio>
using namespace std;
int j,k,z,n;
long long w,l,r,da,ans,a[200100];
bool check(int x)
{
long long sum=0;
z=1;
for (int i=1;i<n;i++)
{
j=z+1,k=n;
while (j<