为什么#1~#5我都RE啊?

P2249 【深基13.例1】查找

HuangSiHan3116 @ 2024-11-10 12:14:03

#include<bits/stdc++.h>
#define int long long
using namespace std;
long long n,a[90000000],m,q;
signed main(){
    scanf("%lld%lld",&n,&m);
    for(int i=1;i<=n;i++){
        scanf("%lld",&a[i]);
    }
    for(int i=1;i<=m;i++){
        scanf("%lld",&q);
        int b=0;
        for(int j=1;a[j]<=q;j++){
            if(a[j]==q){
                printf("%lld ",j);
                b=1;
                break;
            }
        }
        if(!b) printf("-1 ");
    }
    return 0;
}

by HuangSiHan3116 @ 2024-11-10 12:35:09

真是


by HuangSiHan3116 @ 2024-11-10 12:39:49

@pika_ @__int1024 谢谢,那我代码能AC吗?一定得用二分?


by __int1024 @ 2024-11-10 12:40:53

@HuangSiHan3116 一定二分


by __int1024 @ 2024-11-10 12:41:09

@HuangSiHan3116 求关


by HuangSiHan3116 @ 2024-11-10 12:44:08

@__int1024 关了


by pika_ @ 2024-11-10 12:45:39

输入 n 个不超过

10^9

的单调不减的(就是后面的数字不小于前面的数字)非负整数

一般都是用二分 \ STL里面的lower_bound应该也行(lower_bound也是基于二分的)


by pika_ @ 2024-11-10 12:48:25

二分时间复杂度 O(m\log_2n)


by yuemingshuo @ 2024-11-27 17:47:37

关掉O2优化


上一页 |