捞!(玄关)
  • 板块灌水区
  • 楼主AK_CSPS
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/3/31 18:39
  • 上次更新2024/3/31 21:03:43
查看原帖
捞!(玄关)
933895
AK_CSPS楼主2024/3/31 18:39

用深搜做的"奇怪的电梯",希望大家帮忙查一下错误.

代码:

#include <bits/stdc++.h>
using namespace std;
int mapp[205],u[3],n,a,b,cnt=205;
bool book[205];
void dfs(int x,int step)
{
	book[x]=1;
	if(x==b)
	{
		cnt=min(cnt,step);
		return;
	}
    for(int i=1;i<=2;i++)
	{
	    u[1]=x+mapp[x];
	    u[2]=x-mapp[x];
		if(u[i]<1||u[i]>n) continue;
		if(book[u[i]]==0)
		{
			dfs(u[i],step+1);
			u[2]=x+mapp[x];
			book[u[i]]=0;
		}
	}
}
int main()
{
	cin>>n>>a>>b;
	for(int i=1;i<=n;i++)
	{
		cin>>mapp[i];
	}
	dfs(a,0);
	if(cnt==205) cout<<-1;
	else cout<<cnt;
	return 0;
}
2024/3/31 18:39
加载中...