求助!!!64分
查看原帖
求助!!!64分
307518
zhengzhuo1106楼主2024/6/1 19:48

总感觉哪里不对???

#include<bits/stdc++.h>
using namespace std;
int a[210],n,x,y,ans;
bool b[210];
void bfs(int i,int step){
	 int s=i+a[i],xx=i-a[i];
	 if(i==y){
	 	ans=min(ans,step);
	 	return;
	 } 
	 if(s<=n&&b[s]==0){
	 	b[s]=1;
	 	bfs(s,step+1);
	 }
	 if(xx>0&&b[xx]==0){
	 	b[xx]=1;
	 	bfs(xx,step+1);
	 }
} 
int main(){
	memset(b,0,sizeof(b));
	cin>>n>>x>>y;
	for(int i=1;i<=n;i++) cin>>a[i];
	b[x]=1;
	ans=INT_MAX;
	bfs(x,0);
	if(ans==INT_MAX) cout<<-1;
	else cout<<ans;
	return 0;
} 

求指导

2024/6/1 19:48
加载中...