P1605 迷宫那题我40ps,更题解对过了,没啥错。有人能帮我改改吗??
#include<bits/stdc++.h>
using namespace std;
int t,n,m,xx,yy,xxx,yyy,ans;
char a[1001][1001];
int dx[4]={-1,1,0,0};
int dy[4]={0,0,-1,1};
bool flag[1001][1001];
void dfs(int x,int y)
{
if(x==xxx && y==yyy)
{
ans++;
return;
}
flag[x][y]=1;
for(int i=1;i<=3;i++)
{
int tx=x+dx[i];
int ty=y+dy[i];
if(flag[tx][ty])continue;
if(tx<1 || ty>m || tx>n || ty<1)continue;
if(a[tx][ty]=='#')continue;
dfs(tx,ty);
}
}
int main()
{
cin>>n>>m>>t;
cin>>xx>>yy>>xxx>>yyy;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
a[i][j]='.';
}
}
int x,y;
for(int i=1;i<=t;i++)cin>>x>>y,a[x][y]='#';
dfs(xx,yy);
cout<<ans;
return 0;
}