lower_bound

 1 #include <stdio.h>
 2 #include <string.h>
 3 #include <algorithm>
 4 using namespace std;
 5
 6 int main()
 7 {
 8     int n,z;
 9     int i,j,k;
10     int a[1005];
11     scanf("%d",&n);
12     for(i=1;i<=n;i++)
13         scanf("%d",&a[i]);
14     sort(a+1,a+1+n);
15     scanf("%d",&z);
16     int xiabiao1=upper_bound(a+1,a+1+n,z)-a;//找大于z的第一个数下标
17     int xiabiao2=lower_bound(a+1,a+1+n,z)-a;//找大于等于z的第一个数下标
18     printf("%d %d\n",xiabiao1,xiabiao2);
19     return 0;
20 }
21 /*
22 //下标从0开始
23 int main()
24 {
25     int n,z;
26     int i,j,k;
27     int a[1005];
28     scanf("%d",&n);
29     for(i=0;i<n;i++)
30         scanf("%d",&a[i]);
31     sort(a,a+n);
32     scanf("%d",&z);
33     int xiabiao1=upper_bound(a,a+n,z)-a;
34     int xiabiao2=lower_bound(a,a+n,z)-a;
35     printf("%d %d\n",xiabiao1,xiabiao2);
36     return 0;
37 }*/

时间: 2024-12-10 17:48:30

lower_bound的相关文章

HDU 4288 Coder(模拟) 附:upper_bound与lower_bound的比较

HDU 4288 题意:太长..点进去自己看吧 思路: 一道模拟题,但直接模拟会卡TLE,所以进行些许优化,将复杂度/5. 简而言之就是用一个有序数组来模拟set. 优化是利用lower_bound函数,这里简介下lower_bound 与 upper_bound 的区别: 摘自:http://blog.csdn.net/weiguang_123/article/details/7987823 lower_bound返回[First,last)中,可以插入value的第一个位置,使得插入后仍旧满

hdu 5178 pairs(BC第一题,,方法不止一种,,我用lower_bound那种。。。)

题意: X坐标上有n个数.JOHN想知道有多少对数满足:x[a]-x[b]<=k(题意给)[a<b] 思路: 额,,,直接看代码吧,,,, 代码: int T,n,k; int x[100005]; int main(){ cin>>T; while(T--){ cin>>n>>k; rep(i,1,n) scanf("%d",&x[i]); sort(x+1,x+1+n); ll ans=0; rep(i,2,n){ ll te

STL 二分查找三兄弟(lower_bound(),upper_bound(),binary_search())

一:起因 (1)STL中关于二分查找的函数有三个:lower_bound .upper_bound .binary_search  -- 这三个函数都运用于有序区间(当然这也是运用二分查找 的前提),下面记录一下这两个函数: (2)ForwardIter lower_bound(ForwardIter first, ForwardIter last,const _Tp& val)算法返回一个非递减序列[first, last)中的第一个大于等于值val的位置: (3)ForwardIter up

STL 源码剖析 算法 stl_algo.h -- lower_bound

本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie lower_bound(应用于有序区间) -------------------------------------------------------------------------------------------------------------------------- 描述:二分查找,返回一个迭代器指向每一个"不小于 value "的元素, 或 value 应该

二分lower_bound()与upper_bound()的运用

<span style="color:#6633ff;">/* G - 二分 Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%lld & %llu Submit Status Description Given n points (1 dimensional) and q segments, you have to find the number of points that lie in each o

C++标准库之 Lower_Bound, upper_Bound

关于二分查找,这绝对是最简单却又最难的实现了,其各种版本可以参见http://blog.csdn.net/xuqingict/article/details/17335833 在C++的标准库中,便提供了这样的函数,lower_bound 与 upper_bound,对于这两个函数的理解,有如下几种情形: 1   数组中包含至少一个目标元素,例如在下面数字中搜索数字3. 在该数组中搜索数字3,得到的low与high的结果如图所示: 其实这很简单  表示  [ low , high ) 这个半开半

lower_bound() upper_bound()函数

转自http://blog.csdn.net/niushuai666/article/details/6734403 函数lower_bound()在first和last中的前闭后开区间进行二分查找,返回大于或等于val的第一个元素位置.如果所有元素都小于val,则返回last的位置 举例如下: 一个数组number序列为:4,10,11,30,69,70,96,100.设要插入数字3,9,111.pos为要插入的位置的下标 则 pos = lower_bound( number, number

HDU 5462 超级赛亚ACMer lower_bound

题目链接 : 超级赛亚ACMer 看别人AC代码学会了一个C++STL  lower_bound ForwardIter lower_bound(ForwardIter first, ForwardIter last,const _Tp& val)算法返回一个非递减序列[first, last)中的第一个大于等于值val的位置. ForwardIter upper_bound(ForwardIter first, ForwardIter last, const _Tp& val)算法返回一

STL中的二分查找———lower_bound,upper_bound,binary_search

关于STL中的排序和检索,排序一般用sort函数即可,今天来整理一下检索中常用的函数——lower_bound , upper_bound 和 binary_search . STL中关于二分查找的函数有三个lower_bound .upper_bound .binary_search .这三个函数都运用于有序区间(当然这也是运用二分查找的前提). Tips:1.在检索前,应该用sort函数对数组进行从小到大排序.     2.使用以上函数时必须包含头文件:#include < algorith

lower_bound() 与 upper_bound()

#include <iostream>#include <algorithm>//必须包含的头文件using namespace std;int main(){  int point[10] = {1,3,7,7,9}; int tmp = upper_bound(point, point + 5, 7) - point;//按从小到大,7最多能插入数组point的哪个位置 printf("%d\n",tmp); tmp = lower_bound(point,