大神帮忙看看
  • 板块灌水区
  • 楼主lizijian2024
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/8/25 18:14
  • 上次更新2024/8/25 20:59:27
查看原帖
大神帮忙看看
1414943
lizijian2024楼主2024/8/25 18:14

半江超时半江绿:

#include<bits/stdc++.h>
using namespace std;
int n,a1,b,a[1145],vis[1145],ans=100000;
void e(int k,int s)
{
	if(s>=ans)return;
	if(k==b){
		ans=min(s,ans);
		return;}if(k>a[k]&&vis[k-a[k]]==0){
		vis[k-a[k]]=1;
		e(k-a[k],s+1);
		vis[k-a[k]]=0;}if(n>=k+a[k]&&vis[k+a[k]]==0){
		vis[k+a[k]]=1;
		e(k+a[k],s+1);
		vis[k+a[k]]=0;}}
int main(){
	cin>>n>>a1>>b;
	for(int i=1;i<=n;i++){
		cin>>a[i];} 
	e(a1,0); 
	if(ans==100000)
	{
		cout<<"-1";
		return 0;
	}
	cout<<ans;
	return 0;}
2024/8/25 18:14
加载中...