首页 > 其他 > 详细

HDU 6621"K-th Closest Distance"(二分+主席树)

时间:2019-10-19 20:58:34      阅读:73      评论:0      收藏:0      [点我收藏+]

 

传送门

 

•题意

  有 $m$ 次询问,每次询问求 $n$ 个数中, $[L,R]$ 区间距 $p$ 第 $k$ 近的数与 $p$ 差值的绝对值;

•题解

  二分答案,假设当前二分的答案为 $x$,那么如何判断 $x$ 是否可以呢?

  只需判断 $[L,R]$ 区间值在 $[p-x,p+x]$ 的数的个数 $sum$ 是否大于等于 k 即可;

  如果 $sum \geq k$,那么,x 大了,需要减小范围,反之,需要增大范围;

  如何快速求解 $[L,R]$ 区间值在 $[p-x,p+x]$ 的数的个数呢?

  这就是主席树的板板题了;

  时间见复杂度为 $O(m\cdot log(10^6)\cdot log(10^6))$,而本题给了 $15s$,完全可以过;

•Code

  HDU6621.cpp

 

HDU 6621"K-th Closest Distance"(二分+主席树)

原文:https://www.cnblogs.com/violet-acmer/p/11705086.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!