MLE #1 求助
查看原帖
MLE #1 求助
654958
Light_az楼主2023/2/25 21:09

O2O2 后第一个测试点 MLEMLE,不知道什么原因

#include<bits/stdc++.h>
#define Test ios::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr)
#define ll long long
#define F(i,a,b) for (int i=a;i<=b;i++)
using namespace std;
const int N=1e3+10,NN=1e4+10;
ll n,m,k,x,y,u,v,w,cnt=0,t=0,l,r,len,T;
ll mini=INT_MAX,maxi=0,Mod;
string s1,s2;
int a[N],ans[N];
bool b[N];
struct Node{
	int id,step;
};
queue<Node> q;
int main(){
	cin>>n>>u>>v;
	F(i,1,n) cin>>a[i];
	F(i,1,n) ans[i]=150;
	q.push({u,0});
	while(!q.empty()){
		Node num=q.front();
		q.pop();
		if(num.id<1||num.id>n) continue;
		if(num.step>ans[num.id]) continue;
		if(num.id==v){
		    cout<<num.step;
		    return 0;
		} 
		ans[num.id]=num.step;
		q.push({num.id+a[num.id],num.step+1});
		q.push({num.id-a[num.id],num.step+1});
	}
	cout<<-1;
	return 0;
}
2023/2/25 21:09
加载中...