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
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 。
解决 RE 变 TLE 就把第10
行的
int n,f[10000]={0},k,s;
中的
f[100000]={0}
放到main
函数外。
TLE 变 AC 请学二分。
by bcbgszyzh @ 2023-04-09 16:12:02
@Steve_xh
是,我打错了!
by Steve_xh @ 2023-04-10 12:24:51
@bcbgszyzh sorry,无恶意,仅提醒