時間限制:
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 423 34 46 768 343 343
2 4 23 343
樣例輸出
nonoyes
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 判斷該數是否存在集合中就可以了,簡單又容易理解。這裡有個坑,額,或許只有我這麼傻。測試資料只用...