代码:
#include <iostream>
#include <algorithm>
#include <cstring>
#include <queue>
using namespace std;
#define x first
#define y second
typedef pair<int,int> PII;
const int N=55;
char g[N][N];
string f[N][N];
int dist[N][N];
int dx[]={1,0,0,-1};
int dy[]={0,-1,1,0};
char c[5]={'D','L','R','U'};
int n,m;
void bfs()
{
memset(dist,-1,sizeof dist);
queue<PII> q;
dist[0][0]=0;
q.push({0,0});
while(q.size())
{
PII t=q.front();
q.pop();
for(int i=0;i<4;i++)
{
int x=t.x+dx[i],y=t.y+dy[i];
if(x<0||x>=n||y<0||y>=m) continue;
if(g[x][y]=='1') continue;
if(dist[x][y]!=-1) continue;
dist[x][y]=dist[t.x][t.y]+1;
f[x][y]=f[t.x][t.y]+c[i];
q.push({x,y});
}
}
}
int main()
{
// n=30,m=50;
cin>>n>>m;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cin>>g[i][j];
}
}
bfs();
cout<<f[n-1][m-1]<<endl;
//cout<<"DDDDRRURRRRRRDRRRRDDDLDDRDDDDDDDDDDDDRDDRRRURRUURRDDDDRDRRRRRRDRRURRDDDRRRRUURUUUUUUULULLUUUURRRRUULLLUUUULLUUULUURRURRURURRRDDRRRRRDDRRDDLLLDDRRDDRDDLDDDLLDDLLLDLDDDLDDRRRRRRRRRDDDDDDRR"<<endl;
return 0;
}在这里插入代码片
// 第一次用 二维的字符串,这样记录路径太爽了,
// 还有一个点要注意,输入要是字符类型的