大神们,我觉得这个思路没错啊 怎么输不出来
查看原帖
大神们,我觉得这个思路没错啊 怎么输不出来
602243
Curryxs楼主2022/3/1 19:38
#include<bits/stdc++.h>
using namespace std;
int p,q;
char a[1000][35];
int l,r,c;
int xx[]={0,0,-1,1,l,-l};
int yy[]={-1,1,0,0,0,0};
int book[1000][35];

void dfs(int x,int y,int step)
{
	book[x][y]=1;
	if(a[x][y]=='E')
	{
		cout<<step<<endl;
		return;
	}
	for(int i=0;i<6;i++)
	{
		int nx=x+xx[i];
		int ny=y+yy[i];
		if(nx<1||nx>l*r||ny<1||ny>c||book[nx][ny]==1||a[nx][ny]=='#') continue;
		dfs(nx,ny,step+1);
	}
}
int main()
{
	int step=0;
	cin>>l>>r>>c;
	for(int k=1;k<=l;k++)
	{
		for(int i=(k-1)*r+1;i<=r*k;i++)
		{
			for(int j=1;j<=c;j++)
			{
				cin>>a[i][j];
				if(a[i][j]=='S')
				{
					p=i,q=j;
				}
			}
		}
		getchar();
	}
	cout<<p<<" "<<q<<endl;
	dfs(p,q,step);
	return 0;
}
2022/3/1 19:38
加载中...