90分降智
查看原帖
90分降智
306233
某个L姓羸弱楼主2020/8/8 09:12
#include<cstdio>
#include<iostream>
using namespace std;
int n,a,b,ans=0x7f,t[205];
bool f[205];
void dfs(int nnn,int mmm){
    if(nnn==b)ans=min(ans,mmm);
    if(mmm>ans)return;
    f[nnn]=1;
    if(nnn+t[nnn]<=n&&f[nnn+t[nnn]]==0) dfs(nnn+t[nnn],mmm+1);
    if(nnn-t[nnn]>=1&&f[nnn-t[nnn]]==0) dfs(nnn-t[nnn],mmm+1);
    f[nnn]=0;
}
int main(){
    cin>>n>>a>>b;
    for(int i=1;i<=n;i++)cin>>t[i];
    f[a]=1;
    dfs(a,0);
    if(ans!=0x7f)cout<<ans;
    else cout<<-1;
    return 0;
}

卡在90分动不了了……

2020/8/8 09:12
加载中...