蒟蒻TLE求助
查看原帖
蒟蒻TLE求助
160870
迟陌楼主2022/7/30 17:57

蒟蒻初学搜索,大概思路懂了,然后打了一下(~~对着题解学习我真的没有想抄!~~然后交上去之后tle了3个 我好像剪枝也剪了不知道为什么不会过? 求大佬指点呜呜

#include<iostream>
#include<cstdio>
using namespace std;
int a[205];
int n,t,b;
int m=1;
int ans=1000000;
int via[210];
void lift(int dep,int sum)
{
		if(dep==b)
	{
		ans=min(sum,ans);
		return;
	}
    if(sum>ans)
    return;

	via[dep]=1;
		if(dep+a[dep]<=n&&via[dep+a[dep]]==0)
		lift(dep+a[dep],sum+1);
		if(dep-a[dep]>=1&&via[dep+a[dep]]==0)
		lift(dep-a[dep],sum+1);
	via[dep]=0;
}
int main()
{

	cin>>n>>t>>b;
	for(int i=1;i<=n;i++)
	cin>>a[i];
	via[t]=1;
	lift(t,0);
    if(ans!=1000000)
    cout<<ans;
    else
    cout<<"-1";
}
2022/7/30 17:57
加载中...