RT,TLE#16,但是我的代码是O(n^2)的啊,为什么会挂/kk
求大佬帮忙看看,核心代码只有十几行/kel
#include<cstdio>
#include<vector>
#include<cstring>
#include<iostream>
#include<algorithm>
#define false 0
#define true 1
using namespace std;
int n,m;
vector<vector<int> >a,f;
bool dfs(int x,int y)
{
if(x==n&&y==m) return true;
if(a[x][y]==false||f[x][y]==true) return false;
if(x!=1||y!=1) f[x][y]=true;
if(dfs(x+1,y)) return true;
if(dfs(x,y+1)) return true;
f[x][y]=false;
return false;
}
int main()
{
//freopen("qaq.out","r",stdin);
scanf("%d%d",&n,&m);
a.resize(n+5);
f.resize(n+5);
for(int i=0;i<(int)a.size();i++)
{
a[i].resize(m+5);
f[i].resize(m+5);
for(int j=0;j<(int)a[i].size();j++) a[i][j]=f[i][j]=false;
}
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
char c=getchar();
while(c!='.'&&c!='#') c=getchar();
if(c=='.') a[i][j]=true;
}
if(!dfs(1,1)) puts("0");
else if(!dfs(1,1)) puts("1");
else puts("2");
return 0;
}