喜提RE

P2249 【深基13.例1】查找

Gaoliangyi @ 2023-03-07 20:14:55

请问本题咋做(本蒟蒻不会二分)

#include<iostream>
#include<cmath>
#include<iomanip>
#include<string>
#include<stdio.h>
#include<algorithm>
using namespace std;
int main()
{
int n,f[10000]={0},k,s;
scanf("%d%d",&n,&k);
for(int i=0;i<n;i++)
    scanf("%d",f[i]);
while(k--)
{
    scanf("%d",&s);
    for(int i=0;i<n;i++)
        if(f[i]==s)
        {
            cout<<i;
            return 0;
        }
cout<<-1;
}
return 0;
}

by dk_qwq @ 2023-03-07 20:40:05

@Gaoliangyi 那就学二分


by WA_sir @ 2023-03-07 20:45:37

@Gaoliangyi n \leq 10^{6}


by Gaoliangyi @ 2023-03-07 20:50:20

@WA_sir 谢谢,但是结果一样


by bcbgszyzh @ 2023-03-10 20:34:43

@Gaoliangyi ……, go to learn binery search(二分)。—Um-mik


by Steve_xh @ 2023-03-13 13:32:04

@bcbgszyzh 那是binary search不会别乱爆漂亮文


by bcbgszyzh @ 2023-03-14 21:05:02

#include<iostream>
#include<cmath>
#include<iomanip>
#include<string>
#include<stdio.h>
#include<algorithm>
using namespace std;
int main()
{
    int n,f[10000]={0},k,s;
    scanf("%d%d",&n,&k);
    for(int i=0;i<n;i++)
        scanf("%d",f[i]);
    while(k--)
    {
        scanf("%d",&s);
        for(int i=0;i<n;i++)
            if(f[i]==s)
            {
                cout<<i;
                return 0;
            }
    cout<<-1;
    }
    return 0;
}

首先,你的代码没有 CE 。 解决 RETLE 就把第10行的 int n,f[10000]={0},k,s; 中的 f[100000]={0} 放到main函数外。 TLEAC 请学二分。


by bcbgszyzh @ 2023-04-09 16:12:02

@Steve_xh

是,我打错了!


by Steve_xh @ 2023-04-10 12:24:51

@bcbgszyzh sorry,无恶意,仅提醒


|