码迷,mamicode.com
首页 > 其他好文 > 详细

关于lower_bound的使用

时间:2014-10-25 21:19:08      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:blog   http   os   ar   使用   strong   sp   on   log   

突然发现lower_bound是一个挺好用的东西,

在学习最长不下降子序列的nlogn的算法的时候看到的,C++党写起二分来一行- -P党一排233

感觉如果到时候需要用上二分的话,能用lower_bound代替真是省事啊...有时间的话,再好好的研究下

这里先简单的mark一下lower_bound的用法;

 

首先说一下lower_bound是用来求在first和last中的前闭后开区间进行二分查找,返回大于或等于x的第一个元素位置

比如,你现在需要求a[i](i=1,2,3......)的第2个数到第10个数中,大于或等于x的第一个元素的位置;(注意这里是从1开始定义)

因为lower_bound返回的是最小的指针,所以还要-a;

 

pos=lower_bound(a+2+1,a+10+1,x)-a;

具体的运用可以看BZOJ1609;

 

另外提一下,upper_bound的用法和lower_bound类似,返回的是指向满足a[i]>k的最小指针(区别在于,不含等号)

 

我们可以用他们求出有序数组a有多少个相同的k

upper_bound(a,a+n,k)-lower_bound(a,a+n,k)

 

关于lower_bound的使用

标签:blog   http   os   ar   使用   strong   sp   on   log   

原文地址:http://www.cnblogs.com/polebug/p/4050835.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!