1 条题解

  • 0
    @ 2022-12-24 12:30:26

    按照题意模拟即可。

    代码如下:

    #include<iostream>
    #include<string.h>
    using namespace std;
    int n,m;
    char ch[105][105];
    bool qp[105][105];
    int sx,sy,ex,ey;
    int ax[105],ay[105],len;
    bool flag=false;
    void dfs(int x,int y)
    {
    	if(qp[x][y]==false)return;
    	if(x==ex&&y==ey)
    	{
    		flag=true;
    		cout<<"("<<ax[1]<<","<<ay[1]<<")";
    		for(int i=2;i<=len;i++)
    		{
    			cout<<"->("<<ax[i]<<","<<ay[i]<<")";
    		}
    		cout<<"->("<<ex<<","<<ey<<")"<<endl;
    	}
    	len++;
    	ax[len]=x;
    	ay[len]=y;
    	qp[x][y]=false;
    	dfs(x,y-1);
    	dfs(x-1,y);
    	dfs(x,y+1);
    	dfs(x+1,y);
    	qp[x][y]=true;
    	len--;
    }
    int main()
    {
    	memset(qp,false,sizeof(qp));
    	cin>>n>>m;
    	for(int i=1;i<=n;i++)
    	{
    		for(int j=1;j<=m;j++)
    		{
    			cin>>ch[i][j];
    			if(ch[i][j]=='M')
    			{
    				sx=i,sy=j;
    				qp[i][j]=true;
    			}
    			if(ch[i][j]=='E')
    			{
    				ex=i,ey=j;
    				qp[i][j]=true;
    			}
    			if(ch[i][j]=='.')qp[i][j]=true;
    		}
    	}
    	dfs(sx,sy);
    	if(flag==false)cout<<"-1";
    	return 0;
    }
    

    记得好评球球了!

    • 1

    信息

    ID
    46
    时间
    1000ms
    内存
    256MiB
    难度
    8
    标签
    递交数
    8
    已通过
    6
    上传者