stl set容器 ny86找球號 一)

2021-06-29 00:45:11 字數 2542 閱讀 3248

時間限制:

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

stl 對這個序列可以進行查詢,插入刪除序列中的任意乙個元素,而完成這些操作的時間同這個序列中元素個數的對數成比例關係,並且當

游標指向乙個已刪除的元素時,刪除操作無效。而乙個經過更正的和更加實際的定義應該是:乙個集合(set)是乙個容器,它其中所包含的元素的值是唯一的。這在收集乙個資料的具體值的時候是有用的。集合中的元素按一定的順序排列,並被作為集合中的例項。乙個集合通過乙個

鍊錶來組織,在插入操作和刪除操作上比向量(vector)快,但查詢或新增末尾的元素時會有些慢。具體實現採用了

紅黑樹的平衡二叉樹的

資料結構

explicit set(const compare&=compare());

如:set> set1;

less是乙個標準類,用於形成公升序排列

函式物件。降序排列是用greater。

templateset(inputiterator, inputiterator,\ const compare&=compare());

如:set>set2(vector1.begin(),vector1.end());

通過指定某一預先定義的區間來初始化set物件的

建構函式。

set(const set); 

如:set>set3(set2); 

複製建構函式。

begin() 返回指向第乙個元素的

迭代器clear() 清除所有元素

count() 返回某個值元素的個數

empty() 如果集合為空,返回true(真)

end() 返回指向最後乙個元素之後的迭代器,不是最後乙個元素

equal_range() 返回集合中與給定值相等的上下限的兩個迭代器

erase() 刪除集合中的元素

find() 返回乙個指向被查詢到元素的迭代器

get_allocator() 返回集合的分配器

insert() 在集合中插入元素

lower_bound() 返回指向大於(或等於)某值的第乙個元素的迭代器

key_comp() 返回乙個用於元素間值比較的函式

max_size() 返回集合能容納的元素的最大限值

rbegin() 返回指向集合中最後乙個元素的反向迭代器

rend() 返回指向集合中第乙個元素的反向迭代器

size() 集合中元素的數目

swap() 交換兩個集合變數

upper_bound() 返回大於某個值元素的迭代器

value_comp() 返回乙個用於比較元素間的值的函式

set c:建立空集合,不包含任何元素

set c(op):以op為排序準則,產生乙個空的set

set c1(c2):複製c2中的元素到c1中

set c(const value_type *first, const value_type* last):複製[first, last)之間元素構成新集合

set c(const value_type *first, const value_type* last,op):以op為排序準則,

複製[first, last)之間元素構成新集合。

c.~set()銷毀所有元素,釋放記憶體

multiset mc:建立空集合,不包含任何元素

multiset mc(op):以op為排序準則,產生乙個空的set

multiset c1(c2):複製c2中的元素到c1中

multiset c(const value_type *first, const value_type* last):複製[first, last)之間元素構成新集合

multiset c(const value_type *first, const value_type* last,op):以op為排序準則,

複製[first, last)之間元素構成新集合。

c.~set()銷毀所有元素,釋放記憶體

NY86 找球號 一)

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

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