求助,Wa 36分
查看原帖
求助,Wa 36分
1037997
_TGWQ12_楼主2023/12/6 22:26
#include<bits/stdc++.h>
using namespace std;
int l,n,r,dp[400],a[400],vis[400];
int dfs(int u)
{
	if(dp[u]!=0) return dp[u];
	if(u==r) return 0; 
	int ans=1e9;
	if(u+a[u]<=n&&vis[u]==0) vis[u]=1,ans=min(1+dfs(u+a[u]),ans),vis[u]=0;
	if(u-a[u]>=1&&vis[u]==0) vis[u]=1,ans=min(1+dfs(u-a[u]),ans),vis[u]=0;
	return dp[u]=ans;
	
}
int main()
{
	cin>>n>>l>>r;
	for(int i=1;i<=n;i++) cin>>a[i];
	for(int i=1;i<=n;i++) dp[i]=dfs(i);
	if(dp[l]==1e9)
	{
		cout<<"-1";
		return 0;
	}
	cout<<dp[l];
}

未超时,但wa了帮我康康。 ~~我能剪都剪能 ~~

2023/12/6 22:26
加载中...