问一下为什么80分
查看原帖
问一下为什么80分
468029
dfxgbm楼主2021/2/28 09:55
#include <cstdio>
#include <algorithm>
#define M 202
using namespace std;
int vis[M];
int n,b,t,mint=0xffff,cs[M];
void solve(int x){
    if(x==b){
        mint=min(t,mint);
        return;
    }
    vis[x]++;
    if(vis[x]>=M)
        return;
    if(x+cs[x]<=n){
        t++;
        solve(x+cs[x]); //向上
        t--;
    }
    if(x-cs[x]>0){
        t++;
        solve(x-cs[x]);
        t--;
    }
    return;
}

int main(){
    int a;
    scanf("%d%d%d",&n,&a,&b);
    for(int i=1;i<=n;i++)
        scanf("%d",&cs[i]);
    solve(a);
    if(mint==0xffff)
        printf("-1");
    else
        printf("%d",mint);
    return 0;
}

8,9两个点WA

2021/2/28 09:55
加载中...