题目:
代码:
#include<iostream>
using namespace std;
int N,M,T;
int SX,SY,FX,FY,cnt;
int dx[4]={1,-1,0,0};
int dy[4]={0,0,1,-1};
int a[10][10];
int zx[15],zy[15];
void work(int x,int y){
if(x==FX&&y==FY){
cnt++;
return ;
}
for(int i=0;i<4;i++){
int xx=x+dx[i];
int yy=y+dy[i];
if(a[xx][yy]==0&&xx>=1&&xx<=N&&yy>=1&&yy<=M){
a[xx][yy]=1;
work(xx,yy);
a[xx][yy]=0;
}
}
}
int main(){
scanf("%d%d%d",&N,&M,&T);
scanf("%d%d%d%d",&SX,&SY,&FX,&FY);
for(int i=0;i<T;i++) scanf("%d%d",&zx[i],&zy[i]);
for(int i=0;i<T;i++) a[zx[i]][zy[i]]=3;
a[SX][SY]=1;
work(SX,SY);
printf("%d",cnt);
return 0;
}
运行结果: