nyoj 86 找球號 一) set,map

2022-07-12 10:18:13 字數 1396 閱讀 9924

時間限制: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

noyes

yes首先資料很多,用scanf和printf

解法一:用set集合

1 #include 2 #include 

3 #include 4 #include 5

using

namespace

std;67

intmain()

1516

while(n--)

23return0;

24 }

二分查詢也可以,但是資料太多,而且輸入的資料是無序的,用二分查詢還得先排序,

1

2 #include3 #include4 #include5

#define m 100001067

using

namespace

std;89

inta[m];

1011

bool find(int key,int s,int

e)12

22return

false;23

}2425int

main()

2640

41return0;

42 }

用map,

1

#pragma warning(disable:4786)

2 #include 3 #include 4 #include 5 #include 6 #include

7using

namespace

std;89

intmain()

21for(i = 0; i < n; i++)

29return0;

30 }

NYOJ 86 找球號 一)

時間限制 3000 ms 記憶體限制 65535 kb難度 3 描述 在某一國度裡流行著一種遊戲。遊戲規則為 在一堆球中,每個球上都有乙個整數編號i 0 i 100000000 編號可重複,現在說乙個隨機整數k 0 k 100000100 判斷編號為k的球是否在這堆球中 存在為 yes 否則為 no...

NYOJ 86 找球號 一

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 在某一國度裡流行著一種遊戲。遊戲規則為 在一堆球中,每個球上都有乙個整數編號i 0 i 100000000 編號可重複,現在說乙個隨機整數k 0 k 100000100 判斷編號為k的球是否在這堆球中 存在為 yes 否則為 n...

NYOJ 86 找球號 一)

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 在某一國度裡流行著一種遊戲。遊戲規則為 在一堆球中,每個球上都有乙個整數編號i 0 i 100000000 編號可重複,現在說乙個隨機整數k 0 k 100000100 判斷編號為k的球是否在這堆球中 存在為 yes 否則為 n...