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

uva10474

时间:2018-05-12 19:29:12      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:AC   百度百科   用法   while   turn   pac   sort排序   const   很多   

大理石在哪儿?

做本题主要是为了熟悉STL中的sort函数和lower_bound函数:

#include<cstdio>
#include<algorithm>
using namespace std ;

const int maxn=10000 ;
int main()
{
    int n , m ;
    int a[maxn] ;
    int num=0 ;
    while(scanf("%d%d",&n,&m)==2 && n)//注意 
     {
         printf("CASE# %d:\n",++num) ;
         for(int i=0 ; i<n ; i++)
          scanf("%d",&a[i]) ;
         sort(a,a+n) ;//sort排序函数 
         while(m--)
          {
              int x ;
             scanf("%d",&x) ;
            int q=lower_bound(a,a+n,x)-a ;//在已排数组a中寻找x
            if(a[q]==x)  printf("%d found at %d\n",x,q+1) ;
            else printf("%d not found\n",x) ;    
         }
     }
    return 0 ;
}

sort函数在以前的编程学习中见过了很多次,所以运用起来比较熟练,不再多讲

lower_bound函数的作用是查找“大于或者等于x的第一个位置”,但是在用的时候有一个疑问,为什么要-a?

经过百度百科之后知道,lower_bound函数返回一个“大于或者等于x的第一个位置的指针”,从而明白了lower_bound的用法

uva10474

标签:AC   百度百科   用法   while   turn   pac   sort排序   const   很多   

原文地址:https://www.cnblogs.com/xgf-gq/p/9029479.html

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