NYOJ 86 找球号(一)
来源:互联网 发布:用java实现四则运算 编辑:程序博客网 时间:2024/05/18 17:58
找球号(一)
题目来源:点击打开链接
题目信息:这道题,是判断一个随机数是否在另一列数中间。主要就是一个二分法查找,先对一堆球号数排序,这里用到了sort排序。
sort排序默认的是升序,在头文件<algorithm>中。因为最近在练习栈的应用,所以这道题也用到了栈模拟。
由于栈的性质是"先进后出",所以需要把随机数逆序进栈。这样判断栈顶元素是否在球衣号中才是顺序的。
源代码:(栈的应用)
#include<stdio.h>#include<algorithm>#include<stack>using namespace std;int a[1000005],b[1000005];int fun(int a[],int b,int c) //判断b是否在数组a[]中,c是a[]的长度{ int start=0,end=c-1; while(start<=end) //二分法查找 { if(b<a[(start+end)/2]) end=(start+end)/2-1; if(b>a[(start+end)/2])start=(start+end)/2+1; if(b==a[(start+end)/2])return 1; } return 0;}int main(){ stack<int>S; int m,n,i; scanf("%d%d",&m,&n); for(i=0;i<m;i++) scanf("%d",&a[i]); sort(a,a+m); //将球号按从小到大的顺序排序 for(i=0;i<n;i++) scanf("%d",&b[i]); for(i=n-1;i>=0;i--) //注意,栈是先进后出。所以要倒叙进栈 S.push(b[i]); while(!S.empty()) { if(fun(a,S.top(),m)) { printf("YES\n"); S.pop(); continue; } else { printf("NO\n"); S.pop(); continue; } } return 0;}下面是直接用二分法进行查找
源代码:(直接二分法)
#include<stdio.h>#include<stdlib.h>#include<algorithm>using namespace std;long long a[1000005];/*int cmp(const void *a,const void *b){return *(int *)a-*(int *)b;}*/int main(){int m,n,i,j,k;scanf("%d %d",&m,&n);for(i=0;i<m;i++)scanf("%lld",&a[i]); sort(a,a+m);//qsort(a,m,sizeof(a[0]),cmp); //这里用qsort排序需要自己编写比较函数cmp for(i=0;i<n;i++) { scanf("%d",&k); int low=0,hight=m-1,mid=0,t=0; while(low<hight) { mid=(hight+low)/2; if(k==a[mid]) { t=1; break; } else if(k>a[mid]) low=mid+1; else hight=mid-1; } if(t==1) printf("YES\n"); else printf("NO\n"); } return 0;}
0 0
- NYOJ 86 找球号(一)
- NYOJ 86 找球号(一)
- NYOJ 86 找球号(一)
- nyoj 86 找球号(一)
- NYOJ 86 找球号(一)
- nyoj-86-找球号(一)
- NYOJ 86 找球号(一)
- NYOJ 86 找球号(一)
- nyoj 86 找球号(一)
- NYOJ 86 找球号(一)
- nyoj 86 找球号 (一)
- NYOJ 86 找球号(一)
- NYOJ 86 找球号(一)
- NYOJ-86 找球号(一)
- nyoj 86 找球号(一)
- NYOJ 86 找球号(一)
- nyoj-86 找球号(一)
- NYOJ 86-找球号(一)
- 数据结构 之 二叉堆(Heap)
- WordPress出现Briefly unavailable for scheduled maintenance. Check back in a minute. 的解决方法
- 如何查询我老婆原来删除微信聊天记录
- 《程序员的自我修养》读书笔记4 -- Linux共享库组织
- c语言面试------基本概念
- NYOJ 86 找球号(一)
- test
- 不高兴的小明_JAVA_南阳理工ACM53
- (四) 文档和目录
- java 模拟表单方式提交上传文件
- 从足球看--主主、主从、主备
- 使用回调方式写POI导入excel工具类
- hdu 3879 最大密集子图(点和边均带权)(模板)
- 在C++中子类继承和调用父类的构造函数方法