NYOJ 86 找球號 一)

2021-06-25 09:20:12 字數 978 閱讀 1225

時間限制:

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

/*題解:

看起來很簡單的題,其實暗藏玄機

①僅僅有一組輸入資料,故不可以用while(cin>>m>>n)會超時的②小心使用陣列,陣列開到100000000會超記憶體③用map竟然也超時,原因暫時未知。

使用map的tle**:

#include#include#includeusing namespace std;

int main()

for(i=0; i>str;

printf(mymap[str]==0?"no\n":"yes\n");

}}

使用陣列的mle**:

#include#includeint a[100000102];

int main()

for(i=0; i>b;

if(s.find(b)==s.end())

cout<<"no"<

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 找球號 一)

原題鏈結 方法一 先用algorithm中的sort函式,排序後利用二分查詢即可。方法二 用stl中的set,這道題不用考慮輸入資料是否有重複,所以就不用使用multiset,利用set成員函式count 判斷該數是否存在集合中就可以了,簡單又容易理解。這裡有個坑,額,或許只有我這麼傻。測試資料只用...