是不是只要不用二分就会RE

P2249 【深基13.例1】查找

wzm12313 @ 2024-04-19 22:07:54

我没用二分答案,全RE了,是不是不用二分就会RE啊?洛谷还挺智能的。(来自耍小聪明的吃亏)

#include<bits/stdc++.h>
using namespace std;
int n,m,a,q;
int b[100001]={0};
int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        cin>>a;
        if(b[a]==0)b[a]=i;
    }
    for(int i=1;i<=m;i++){
        cin>>q;
        if(b[q]==0)cout<<-1<<' ';
        else cout<<b[q]<<' ';
    }
    return 0;
}

by TheShuMo @ 2024-04-19 22:12:07

@wzm12313 q \leq 10^9 你怎么能用 b[q] 呢?


by fish_love_cat @ 2024-04-19 22:26:08

@wzm12313 哪有那么智能(

你把桶换成 map 就能 AC

还有如果这么智能也不该 RE,应该 SPJ 返回 UKE 的吧(


by fish_love_cat @ 2024-04-19 22:27:34

把第四行改为:

map<int,int>b;

应该就行了


by fish_love_cat @ 2024-04-19 22:28:15

https://www.luogu.com.cn/record/156388840

实测能过


by wzm12313 @ 2024-04-20 08:07:32

@TheShuMo @fish_love_cat 谢谢大佬qwq(我是真蒻awa)


|