2009. 查询Ⅱ

Geofront33
#include <iostream>
using namespace std;
int arr[1000001];
int main(){
    int m, n, temp;
    cin >> m;
    while(m--) cin >> temp, arr[temp]++;
    cin >> n;
    while(n--) cin >> temp, cout << (arr[temp] ? "yes!" : "no!") << endl;
    return 0;
}
10165101213

超时的可以看看供参考
膜大佬

Lento_Ye

可以采用标记法很快了

10175101103-STARK

二分查找,注意m可能为0

10175102262 LarsPendragon

(无贬低买数据之意(因为我也总买……))飞乙己一到oj,所有做题的人便都看着他笑,有的叫道,“飞乙己,你小号又WA6次了!”他不回答,对系统说,“做两道题,要六次WA。”便排出九EMB。他们又故意的高声嚷道,“你一定又买了调试数据了!”飞乙己睁大眼睛说,“你怎么这样凭空污人清白……”“什么清白?我前天亲眼见你买了2009题的数据,然后AC。”飞乙己便涨红了脸,额上的青筋条条绽出,争辩道,“调试不能算买数据……调试!……OJer的事,能算买数据么?”接连便是难懂的话,什么“Runtime Error”,什么“SIGSYS”之类,引得众人都哄笑起来:OJ内外充满了快活的空气。

YZAZJL

include

include

include

using namespace std;
string query(int* a, int len, int key){
int low = 0;
int high = len - 1;
int mid;
while(low <= high){
mid = (low + high) / 2;
if(key == a[mid]){
return “yes!”;
}
if(key < a[mid]){
high = mid - 1;
}
if(key > a[mid]){
low = mid + 1;
}
}
return “no!”;
}
int main()
{
int n;
cin >> n;
int a[n];
int i;
for(i = 0; i < n; i++){
cin >> a[i];
}
sort(a, a + n);
int m;
cin >> m;
int b[m];
for(i = 0; i < m; i++){
cin >> b[i];
}
for(i = 0; i < m; i++){
cout << query(a, n, b[i]) << endl;
}
return 0;
}

yhl1022

这题用map 直接就过了 直接把2008题的代码贴过来就ac了

柴柴柴拆柴柴

可以尝试使用底层实现为红黑树的STL模板set,这样可以获得比较高的查找效率。

10175102262 LarsPendragon

monkey真的快,无脑筛强行1.988sAC

你当前正在回复 博客/题目
存在问题!