同样是第9、10个点WA了,一直想不明白代码哪里写的有问题
查看原帖
同样是第9、10个点WA了,一直想不明白代码哪里写的有问题
431791
_yhl楼主2023/3/22 09:14
#include<bits/stdc++.h>

using namespace std;

int main(){
  ios::sync_with_stdio(false);
  cin.tie(0);

  int n,ai,b,ans=1e9;
  cin>>n>>ai>>b;
  map<int,int> a;
  for(int i=1;i<=n;i++){
    int x;
    cin>>x;
    a[i]=x;
  }
  vector<int> vis(n+1,0);
  function<void(int,int)> Solve=[&](int cur,int step){
    if(cur==b){
      ans=min(ans,step);
      return;
    }
    if(cur>n||cur<1){
      return;
    }
    if(vis[cur]){
      return;
    }
    vis[cur]=1;
    Solve(cur+a[cur],step+1);
    Solve(cur-a[cur],step+1);
    
  };
  Solve(ai,0);
  cout<<(ans==1e9?-1:ans)<<'\n';
  return 0;
}

把第9个数据点下载了之后发现应该有一些情况没有搜索到(?),为什么会这样???

2023/3/22 09:14
加载中...