P1605 迷宫【洛谷】
程序员文章站
2022-06-08 17:57:03
...
#include<bits/stdc++.h>
using namespace std;
int sx,sy,ex,ey,tx,ty,n,m,t,g[6][6],ans;
int dx[]={0,1,-1,0,0};
int dy[]={0,0,0,1,-1};
void DFS(int nx,int ny)
{
if(nx==ex&&ny==ey) {ans++;return;}
for(int i=1;i<=4;i++)
{
int newX=nx+dx[i];
int newY=ny+dy[i];
if(!g[newX][newY]&&newX>=1&&newX<=m&&newY>=1&&newY<=n)
{
g[newX][newY]=1;
DFS(newX,newY);
g[newX][newY]=0;
}
}
}
int main()
{
cin>>n>>m>>t;
cin>>sx>>sy>>ex>>ey;
while(t--)
{
cin>>tx>>ty;
g[tx][ty]=1;
}
g[sx][sy]=1;
DFS(sx,sy);
cout<<ans;
}