http://acm.nyist.net/JudgeOnline/problem.php?pid=86

找球号(一)

时间限制:3000 ms  |  内存限制:65535 KB
难度:3
 
描述
在某一国度里流行着一种游戏。游戏规则为:在一堆球中,每个球上都有一个整数编号i(0<=i<=100000000),编号可重复,现在说一个随机整数k(0<=k<=100000100),判断编号为k的球是否在这堆球中(存在为"YES",否则为"NO"),先答出者为胜。现在有一个人想玩玩这个游戏,但他又很懒。他希望你能帮助他取得胜利。
输入
第一行有两个整数m,n(0<=n<=100000,0<=m<=1000000);m表示这堆球里有m个球,n表示这个游戏进行n次。
接下来输入m+n个整数,前m个分别表示这m个球的编号i,后n个分别表示每次游戏中的随机整数k
输出
输出"YES"或"NO"
样例输入
6 4
23 34 46 768 343 343
2 4 23 343
样例输出
NO
NO
YES
YES
解题思路A:set容器 find功能
代码:
  #include <iostream>
#include <cstdio>
#include <cstring>
#include <set>
#include <algorithm> using namespace std; int main(){
int m,n,t;
set<int> se;
set<int>::iterator it;
scanf("%d %d",&m,&n);
for(int i=;i<m;i++){
scanf("%d",&t);
se.insert(t);
}
for(int i=;i<n;i++){
scanf("%d",&t);
it=se.find(t);
if(it==se.end()) puts("NO");
else puts("YES");
}
return ;
}

解题思路B:sort,二分查找

代码:

 #include <iostream>
#include <cstdio>
#include <cstring>
#include <set>
#include <algorithm> using namespace std; int am[];
int m,n,t; bool Find(int t); int main(){
scanf("%d %d",&m,&n);
for(int i=;i<m;i++){
scanf("%d",&am[i]);
}
sort(am,am+m);
for(int i=;i<n;i++){
scanf("%d",&t);
if(Find(t)) puts("YES");
else puts("NO");
}
return ;
}
bool Find(int t){
int l=,r=m-,mi;
while(l<=r){
mi=(l+r)/;
if(am[mi]==t) return true;
else if(am[mi]<t) l=mi+;
else r=mi-;
}
return false;
}

解题思路C:hash(借鉴别人的,待研究***)

代码:

 #include <stdio.h>
#define MAXN 3125010 int vis[MAXN]={}; int main(){
int m,n,x;
int i;
scanf("%d %d",&m,&n);
for(i=;i<m;i++){
scanf("%d",&x);
vis[x/]|=<<x%;
}
for(i=;i<n;i++){
scanf("%d",&x);
if(vis[x/]&(<<x%)) printf("YES\n");
else printf("NO\n");
}
return ;
}

nyoj86-找球号(一) 【set 二分查找 hash】的更多相关文章

  1. NYOJ-86 找球号(一)AC 分类: NYOJ 2014-02-02 10:45 160人阅读 评论(0) 收藏

    NO.1 单纯的傻傻的代码: #include<stdio.h> long long num[100000005]={0}; int main(){ int n, m, k; scanf( ...

  2. nyoj 86 找球号(一)

    点击打开链接 找球号(一) 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 在某一国度里流行着一种游戏.游戏规则为:在一堆球中,每个球上都有一个整数编号i(0<=i ...

  3. nyoj 86 找球号(一)

    找球号(一) 时间限制:3000 ms  |            内存限制:65535 KB 难度:3   描述 在某一国度里流行着一种游戏.游戏规则为:在一堆球中,每个球上都有一个整数编号i(0& ...

  4. nyoj 86 找球号(一)(set,map)

    找球号(一) 时间限制:3000 ms  |            内存限制:65535 KB 难度:3   描述 在某一国度里流行着一种游戏.游戏规则为:在一堆球中,每个球上都有一个整数编号i(0& ...

  5. 找球号(一)(hask表)

    找球号(一) 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 在某一国度里流行着一种游戏.游戏规则为:在一堆球中,每个球上都有一个整数编号i(0<=i<= ...

  6. nyoj138 找球号(二)_离散化

    找球号(二) 时间限制:1000 ms  |  内存限制:65535 KB 难度:5   描述 在某一国度里流行着一种游戏.游戏规则为:现有一堆球中,每个球上都有一个整数编号i(0<=i< ...

  7. ACM 找球号(一)

    找球号(一) 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 在某一国度里流行着一种游戏.游戏规则为:在一堆球中,每个球上都有一个整数编号i(0<=i<= ...

  8. NYOJ528 找球号(三)位运算

    找球号(三) 时间限制:2000 ms  |  内存限制:3000 KB 难度:2   描述 xiaod现在正在某个球场负责网球的管理工作.为了方便管理,他把每个球都编了号,且每个编号的球的总个数都是 ...

  9. NYOJ 138 找球号(二) bitset 二进制的妙用

    找球号(二) 时间限制:1000 ms  |  内存限制:65535 KB 难度:5 描述 描述 在某一国度里流行着一种游戏.游戏规则为:现有一堆球中,每个球上都有一个整数编号i(0<=i< ...

随机推荐

  1. Makefile | Linux嵌入式编程 使用详细图解

    针对的是对Makefile一点都不会的小白哦! 练习之前我们要做好准备: (1):第一步创建一个目录,因为实验过程中生成的文件会很多,不要把你系统里的文件搞得乱七八糟. [cjj@bogon ~]$ ...

  2. JVM插码之五:Java agent+ASM实战--监控所有方法执行时间

    本文建立在对instrumentation和agent有初步的了解的前提下阅读,关于这2个类的讲解在其它文章中. 这是一个maven项目,pom中需要的配置,lib中有asm的jar包 pom.xml ...

  3. python selenium-9 grid模式

    grid是进行分布式测试的工具,由一个hub主节点和若干个node代理节点组成 1.下载Selenium Standalone Server 下载地址:https://www.seleniumhq.o ...

  4. [UE4] 虚幻4学习---UE4中的字符串转换

    String Conversions: FString To FName FString To Int32 Float To FString FArrayReaderPtr To FString TA ...

  5. 2018ICPC网络赛(焦作站)K题题解

    一.题目链接 https://nanti.jisuanke.com/t/31720 二.题意 给$N$种船只,第$i$种船的载重量是$V_i$,数量是$2^{C_i}-1$.接下来有$Q$次询问,每次 ...

  6. javascript创建对象之工厂模式(一)

    工厂模式在软件工程里面是一种比较常见的设计模式了.这种模式抽象了创建具体对象的过程. 上代码: function createHuman(name,sex) { var obj = new Objec ...

  7. 第13章 TCP编程(1)_socket套接字

    1. socket套接字 (1)套接字简介 ①socket是一种通讯机制,它包含一整套的调用接口和数据结构的定义,它给应用进程提供了使用如TCP/UDP等网络协议进行网络通讯的手段. ②Linux中的 ...

  8. Doris FE负载均衡配置

    0 背景概述 Doris完全兼容了mysql协议,并且Doris FE本身通过多follower选举机制选举出master,可以保证fe本身的高可用性,也可以通过加入observer fe节点来提高f ...

  9. 2.纯 CSS 创作一个矩形旋转 loader 特效

    原文地址:2.纯 CSS 创作一个矩形旋转 loader 特效 扩展后地址:https://scrimba.com/c/cNJVWUR  扩展地址:https://codepen.io/pen/ HT ...

  10. 楼层验证B1~1F等

    $("#mapManagerEditForm").bootstrapValidator("addField","floors",{ vali ...