hdu6231】的更多相关文章

hdu6231 题意 给出一些数字,对于任意长度不小于 \(k\) 的区间,把第 \(k\) 大数加入到一个新的数组 \(B\) 中,求 \(B\) 数组第 \(m\) 大数. 分析 二分答案 \(x\) ,枚举左端点 \(l\) ,找到最小的 \(r\) 使得区间 \([l,r]\) 中有至少 \(k\) 个数大于等于 \(x\),那么右端点的取值个数为 \(n-r+1\),尺取法维护下,将右端点的个数累加求和.如果和大于等于 \(m\) 说明答案一定大于等于 \(x\) 否则一定小于 \(x…
题目链接:https://cn.vjudge.net/problem/HDU-6231 思路:二分+双指针: #include <stdio.h> #include <iostream> #include <string.h> #include <math.h> #include <algorithm> using namespace std; typedef long long int LL; const int INF=2e9+1e8; co…