输出格式
输出从起点坐标到终点坐标的方案总数。
输入输出样例
输入 #1复制
2 2 1 1 1 2 2 1 2
输出 #1复制
1
#include<iostream>
using namespace std;
#define int long long
int n,m,t,p,q,x1,y1,e1,e2,ans;
int map[6][6];
int dx[4]={1,-1,0,0},dy[4]={0,0,1,-1};//这个数组是从0开始的,差点忘了,还搞了我一个多小时真服了
bool vis[6][6];
void bfs(int x,int y,int step){
if(x==x1&&y==y1)
{
ans++;
return ;
}
for(int i=0;i<=3;i++){
int xx,yy;
xx=dx[i]+x,yy=dy[i]+y;
if(map[xx][yy]==1||xx<1||yy<1||xx>n||yy>m||vis[x][y])continue;
vis[x][y]=1;
bfs(xx,yy,step+1);//continue sousuo
vis[x][y]=0;
}
//if(x!=x1||y!=y1)
}
signed main(){
std::ios::sync_with_stdio;
cin.tie(0);cin.tie(0);
cin>>n>>m>>t;
cin>>p>>q>>x1>>y1;
for(int i=1;i<=t;i++){
cin>>e1>>e2;
map[e1][e2]=1;
}
bfs(p,q,0);
cout<<ans<<"\n";
}