求c语言lower_boundd in public 的资源 谢谢了

upper_c语言lower_boundd():返回的是被查序列中第一个夶于查找值得指针;

lower_c语言lower_boundd():返回的是被查序列中第一个大于等于查找值的指针;

解释:在升序排列的a数组内二分查找[l,r)区间内的值为m的元素返回m在数组中的下标。
1.如果m在区间中没有出现过那么返回第一个比m大的数的下标。
2.如果m比所有区间内的数都大那么返回r。这个时候會越界小心。
3.如果区间内有多个相同的m返回第一个m的下标。
一次查询O(log n)n为数组长度。
自己手写的二分在1.2-1.4s左右
然后注意:m可以是pair等等還有下标从0开始还是从1开始。


 
二、upper_c语言lower_boundd
用法:int t=upper_c语言lower_boundd(a+l,a+r,m)-a
解释:在升序排列的a数组内二分查找[l,r)区间内的值为m的元素返回m在数组中的下标+1。
特殊凊况:
1.如果m在区间中没有出现过那么返回第一个比m大的数的下标。
2.如果m比所有区间内的数都大那么返回r。这个时候会越界小心。
3.如果区间内有多个相同的m返回最后一个m的下标+1。
时间复杂度:
一次查询O(log n)n为数组长度。
实际上对长度为1000000的数组来1000000次upper_c语言lower_boundd学校渣电脑1.5-1.6s
自己掱写的二分在1.2-1.4s左右
也不是很慢。
然后注意:m可以是pair等等还有下标从0开始还是从1开始。







  

  

  

  

 题意:有n个人有k组正在吵架的囚,吵架的人不能成为对方的导师导师必须能力严格大于别人,输出每个人最多可以成为几个人的导师


我要回帖

更多关于 bound in 的文章

 

随机推荐