18pts彩色一片!
查看原帖
18pts彩色一片!
1120480
duminghao123楼主2024/7/28 23:54

我的代码为什么会这样呢?把q队列放入main 30pts,现在18pts

RE on #1,#2,#3,#4,#5,#6,#14,#15

MLE on #8,#12,#13,#16

TLE on #10

#include<bits/stdc++.h>
using namespace std;
int n,a[205],went[205],st,ed;
struct pos{
	int now,step;
}k,k1;
queue<pos> q;
int main(){
	cin>>n>>st>>ed;
	for(int i=1;i<=n;i++) cin>>a[i];
	k.now=st;
	k.step=0;
	q.push(k);
	while(!q.empty()){
		went[q.front().now]=1;
		if(q.front().now==ed){
			cout<<q.front().step;
			return 0;
		}
		k.now=q.front().now+a[q.front().now];k.step=q.front().step+1;
		k1.now=q.front().now-a[q.front().now];k1.step=q.front().step+1;
		if(!went[k.now]||k.now<=n) q.push(k);
		if(!went[k1.now]||k1.now>0) q.push(k1);
		q.pop();
	}
	cout<<-1;
	return 0;
}
2024/7/28 23:54
加载中...