1073: 查找
来源:互联网 发布:linux修改主机名不重启 编辑:程序博客网 时间:2024/05/17 01:33
1073: 查找时间限制: 1 Sec 内存限制: 128 MB提交: 708 解决: 253[提交][状态][讨论版]题目描述 给定一个集合,查找元素是否在集合中出现。输入每个测试用例由多行组成,第一行是两个整数n和m,两个数范围在1到100000之间。自第二行起一共有n+m个整数,其中前面n个整数代表集合的元素,随后的m个整数是待查询的数。所有的整数在范围[-2^31,2^31)内。输出对于每个待查询的数,如果在集合中则输出yes,否则输出no.样例输入5 37 9 3 2 -54 9 -55 3-2 1 0 -2 10 -2 3样例输出noyesyesyesyesno提示注意,需要快速的查找算法!效率不高的查找算法可能会超时!来源CYH来源: http://125.221.232.253/JudgeOnline/problem.php?id=1073
#include <cstdio>#include <stdlib.h>#define max 100000int cmp(const void *a,const void *b){return *(int *)a-*(int *)b;}int A[max+1];int Search(int key,int n){ int lef=0,rig=n,mid; while(lef<=rig) { mid=(lef+rig)/2; if(A[mid]==key) return 1; else if(A[mid]>key) rig=mid-1; else lef=mid+1; } return 0;}int main(){ int m,n; while(~scanf("%d %d",&n,&m)) { for(int i=0;i<n;i++) scanf("%d",&A[i]); qsort(A,n,sizeof(A[0]),cmp); for(int i=1,P;i<=m&&scanf("%d",&P);i++) printf("%s\n",Search(P,n)?"yes":"no"); } return 0;}
0 0
- 1073: 查找
- 查找
- 查找
- 查找
- 查找
- 查找
- 查找
- 查找
- 查找
- 查找
- 查找
- 查找
- 查找
- 查找
- 查找
- 查找
- 查找
- 查找
- 1453: A Simple Problem
- 【JZOJ 4201】【BZOJ 4177】Mike的农场
- unity 获取某个文件夹下的所有图片
- 1003: 数字整除
- 1048: Gardon的幸运数字
- 1073: 查找
- 1669: 我的算法会不会Time Limit Exceeded
- 1694: 是否能被3整除? (好题)
- NTP的配置总结(整理+转载)
- 1545: 相同字符数目
- linux-scp
- Spring 编码过滤 -- 解析Filter实现原理
- vector ----Swap
- LTE 中的基础概念