样例都没过
#include<cstdio>
#include<cmath>
#include<iostream>
#include<cstdlib>
using namespace std;
int map[16][16];//地图
bool flag[16][16];//走过的路进行标记
int bx[4]={0,0,1,-1},by[4]={-1,1,0,0};//打表:方向+-!!!!!
int sum=0,sx=1,sy=1,fx,fy,T,r,l;//sum表示可行次数,sx&sy表示家的坐标 ,fx&fy表示家的坐标,T表示障碍物的个数
void walk(int x,int y){
if(x==fx&&y==fy){
sum++;
return;
}
else{
for(int i=0;i<4;i++){
if(flag[x+bx[i]][y+by[i]]==0&&map[x+bx[i]][y+by[i]]){
flag[x][y]=1;
walk(x+bx[i],y+by[i]);
flag[x][y]=0;
}
}
}
}
int main(){
scanf("%d%d",&fx,&fy);
scanf("%d",&T);
for(int i=0;i<fx-1;i++){
for(int j=0;i<fy-1;j++){
map[i][j]=1;
}
}
for(int i=0;i<T;i++){
scanf("%d%d",&r,&l);
map[r][l]=0;
}
walk(sx,sy);
printf("%d",sum);
return 0;
}