求问为什么MLE
查看原帖
求问为什么MLE
738306
chasing_dream楼主2022/8/15 21:53
#include<bits/stdc++.h>
using namespace std;
inline int read()
{
    register int x=0,f=1;
    char c=getchar();
    while(c<'0'||c>'9')
    {
        if(c=='-') f=-1;
        c=getchar();
    }
    while(c>='0'&&c<='9')
    {
        x=(x<<3)+(x<<1)+(c^48); 
        c=getchar();
    }
    return x*f;
}
struct node
{
	int x,y,b;
};
const int maxn=2005;
const int dx[4]={1,0,-1,0};
const int dy[4]={0,1,0,-1};
char mp[maxn][maxn];
bool vis[maxn][maxn];
int n,m,fx,fy;
int main()
{
	n=read(),m=read();
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
		{
			cin>>mp[i][j];
			if(mp[i][j]=='m') fx=i,fy=j;
		}
	int sdfj=0;
	queue<node> q;
	while(!q.empty()) q.pop();
	q.push((node){fx,fy,0});
	vis[fx][fy]=1;
	while(!q.empty())
	{
		node cur=q.front();
		int nx=cur.x,ny=cur.y,bb=cur.b;
		///cout<<nx<<' '<<ny<<" "<<bb;
		q.pop();
		if(mp[nx][ny]=='d')
		{
			cout<<bb;
			return 0;
		}
		for(int i=0;i<4;i++)
		{
			int xx=nx+dx[i],yy=ny+dy[i];
			if(xx<1 || xx>n || yy<1 || yy>m || vis[xx][yy] || mp[xx][yy]=='#') continue;
			q.push((node){xx,yy,bb+1});
		}
	}
	cout<<"No Way!";
	return 0;
}

2022/8/15 21:53
加载中...