NYOJ 86 找球號 一)

2021-06-19 19:19:31 字數 969 閱讀 8593

時間限制:

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

思路:前幾天剛好看了《程式設計珠璣》上的乙個演算法,現在就直接拿來用了

#include #define bitsperword  32   /*乙個整型數值的大小*/

#define shift 5 /* 2^5 = 32,即乙個整型數值有32位,那麼用乙個元素就能儲存32個狀態位,0表示不存在,1表示存在*/

#define mask 0x1f /*低5位*/

#define n 100000000 /*待處理的數字的個數*/

int a[1+n/bitsperword];/*節省大量的空間*/

int main(void)

while (n--)

else

}return 0;

}

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...

nyoj 86 找球號 一)

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