B题,第二题,求hack,用的dfs 代码简洁明了
B题,第二题,求hack,用的dfs 代码简洁明了
#include<bits/stdc++.h>
#define int long long
#define ed '\n'
#define IOS ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);
#define all(x) x.begin(), x.end()
#define lb(x) x&-x
using namespace std;
typedef pair<int,int>pa;
const int mod_=1e18;
const int mod=998244353;
const int g=1e3+10;
bool bf[g][g];
int fx[]={0,1,0};
int fy[]={0,0,1};
int sum[g];
int cnt=0;
int n=0,m=0;
void dfs(int x,int y)
{
if(x==n&&y==m)
{
for(int i=1;i<=cnt;i++)
{
if(sum[i]==1)cout<<"S";
else cout<<"D";
}
exit(0);
}
for(int i=1;i<=2;i++)
{
int tx=fx[i]+x;
int ty=fy[i]+y;
if(tx>=1&&tx<=n&&ty>=1&&ty<=m&&bf[tx][ty]==0)
{
sum[++cnt]=i;
dfs(tx,ty);
cnt--;
}
}
}
void solve()
{
cin>>n>>m;
int xt=0,y=0;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
char x;cin>>x;
if(x=='#')
{
xt=i;
y=j;
}
}
}
bf[xt][y]=1;
dfs(1,1);
return;
}
signed main()
{
IOS;
//srand((unsigned long long)time(NULL));
//freopen("in.txt","r",stdin);
//freopen("zheng.txt","w",stdout);
int t=1;
//cin>>t;
while(t--)
{
solve();
}
return 0;
}
