#include<bits/stdc++.h>
using namespace std;
int n,maxn,b[41][41];
char a[41][41];
void zmg(int x,int y,int s)
{
if(s>b[x][y])b[x][y]=s;
else return;
if(x==n&&y==n)
{
if(s>maxn)maxn=s;
return;
}
a[x][y]='1';
if(x>1&&a[x-1][y]=='0')zmg(x-1,y,s-1);
if(y>1&&a[x][y-1]=='0')zmg(x,y-1,s-1);
if(x<n&&a[x+1][y]=='0')zmg(x+1,y,s-1);
if(y<n&&a[x][y+1]=='0')zmg(x,y+1,s-1);
a[x][y]='0';
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
cin>>a[i][j];
}
}
zmg(1,1,n*n-1);
cout<<maxn;
return 0;
}
1091【基础】走迷宫
最新推荐文章于 2024-05-20 20:08:58 发布