两个点AC,其他点MLE,why?
查看原帖
两个点AC,其他点MLE,why?
622751
Gril楼主2022/4/8 17:02

我以为他会TLE,然后我再来优化试试来着,可真没想到居然是MLE,whywhywhy?

#include<bits/stdc++.h>
using namespace std;
int n,a,b,k[203],vis[203];
int ans = 0x7fffffff;
void dfs(int now,int step)
{
    if(now == b){ans = min(ans,step);return;}
    if(now<1||now>n||vis[now]==1)return;
    dfs(now+k[now],step+1);
    dfs(now-k[now],step+1);
}
int main()
{
    cin >> n >> a >> b;
    for(int i = 1;i <= n;i++)
        scanf("%d",&k[i]);
    dfs(a,0);
    if(ans==0x7fffffff)
        cout << -1;
    else cout << ans;
    return 0;
}

2022/4/8 17:02
加载中...