dfs #1超时求助!!!
查看原帖
dfs #1超时求助!!!
823836
cloudsRise楼主2022/11/17 21:45
#include<bits/stdc++.h>
using namespace std;

int n, a, b, ans = 0x3f3f3f3f;
int c[210];
int vis[210];
void dfs(int x, int k){
    if(x < 1 || x > n || k > ans || vis[x]) return;
    if(x == b){
         ans = min(k, ans);
         return;
    }
    vis[x] = 1;
    dfs(x + c[x], k + 1);
    dfs(x - c[x], k + 1);
    vis[x] = 0;
}

int main(){
    cin >> n >> a >> b;
    for(int i = 1; i <= n; i++) cin >> c[i];
    dfs(a, 0);
    if(ans == 0x3f3f3f3f) cout << "-1";
    else cout << ans;




    return 0;
}
2022/11/17 21:45
加载中...