64分DFS,#1-#6 TLE 求助
查看原帖
64分DFS,#1-#6 TLE 求助
1304731
封禁用户楼主2025/7/22 16:32

代码:

#include<bits/stdc++.h>
using namespace std;
int n,b,s,ans=INT_MAX,d[207];
bool v[207];
void dfs(int s,int a)
{
	if(s>=ans) return;
    if(a==b)
    {
        ans=min(s,ans);
        // cout<<s<<' '<<ans<<'\n';
        return;
    }
    v[a]=true;
    if(a+d[a]<=n && !(v[a+d[a]])) dfs(s+1,a+d[a]);
    if(a-d[a] >0 && !(v[a-d[a]])) dfs(s+1,a-d[a]);
    v[a]=false;
    return;
}
int main()
{
int a;
    cin>>n>>a>>b;
    for(int i=1;i<=n;i++) cin>>d[i];
    dfs(0,a);
    if(ans!=INT_MAX) cout<<ans;
    else cout<<-1;
    return 0;
}

2025/7/22 16:32
加载中...