以下是我的原码
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<string>
#include<queue>
#include<vector>
#include<cstdlib>
#include<algorithm>
#include<map>
#include<set>
using namespace std;
long n,m,z,ans=0;
int sx,sy,tx,ty;
const int nextx[4]={-1,1,0,0};
const int nexty[4]={0,0,-1,1};
int a[15][15],book[15][15];
void dfs(int x,int y)
{
if(x==tx&&y==tx)
{
ans++;
return;
}
for(int i=0;i<4;i++)
{
int nx=x+nextx[i];
int ny=y+nexty[i];
if(nx>0&&ny>0&&nx<=n&&ny<=m&&a[nx][ny]==0&&book[nx][ny]==0)
{
book[nx][ny]=1;
dfs(nx,ny);
book[nx][ny]=0;
}
}
}
int main()
{
scanf("%d %d %d",&n,&m,&z);
scanf("%d %d %d %d",&sx,&sy,&tx,&ty);
int zx[z+1],zy[z+1];
for(int i=0;i<z;i++)
{
scanf("%d %d",&zx[i],&zy[i]);
a[zx[i]][zy[i]]=1;
}
dfs(sx,sy);
cout<<ans;
return 0;
}