题目链接
给出N个数和Q组询问,每次询问输出第K小的数,并且该数不能是N个数中的
考虑先做差分 pre[i] 表示每个数之间可以插入多少个数
然后将差分做个前缀和,sum[i]=k 表示前i个数可以放k个数进去
考虑在差分数组中二分出第一个大于等于K的位置,然后我们往回退一个位置(或者直接upperbound-1)
假设为pos ,显然现在sum[pos] <K ,我们只需要在K的基础上加上可以再放多少个数即可。
AtCoder Beginner Contest 205D题Kth Excluded(差分+二分)
最新推荐文章于 2024-07-30 14:21:54 发布