0分求调,完全不会做
查看原帖
0分求调,完全不会做
1160851
chengkelin2024楼主2024/10/13 07:50
#include <bits/stdc++.h>
using namespace std;
struct Node{
	int ne;
	int len;
}node[210];
int mp[210]; 
queue<Node> q;
int vis[210];
int n;
	int x,y;
void bfs(int root){
	q.push({root,0});
	vis[root] = 1;
	while(!q.empty()){
		Node s = q.front();
		q.pop();
		if(s.ne==y){
			cout<<s.len;
			return ;
		}
		int qq = s.ne+mp[s.ne];
		int ww = s.ne-mp[s.ne];
		if(qq>=1&&qq<=n&&vis[qq] ==0){		
			q.push({qq,s.len+1});
			vis[qq] = 1;
		}
		if(ww>=1&&ww<=n&&vis[ww] == 0){
			q.push({ww,s.len+1});
			vis[ww] = 1;
		}
	}
	cout<<"1";
}
int main() {
	cin>>n;
	cin>>x>>y;
	for(int i = 1;i<=n;i++){
		cin>>mp[i];
	}
	if(x==y){
		cout<<0;
		return 0;
	}
	bfs(x);

	return 0;
}

不知道怎么做呀

2024/10/13 07:50
加载中...