xjoi 1543 走迷宫
描述
给定一个迷宫。在迷宫中有一些障碍物无法通过,请计算出从左上角到右下角的移动方案总数。(一个位置不能经过两次,只能上下左右四个方向走)
输入格式
第一行包含两个整数n,m,表示迷宫的大小。1 <= N,M<= 6
接下来的n行,每行包含m个字符,代表迷宫。
#代表障碍
*代表你可以去的位置
左上角和右下角用“*”表示
输出格式
一个整数。
样本输入1
5 6 *****# *###*# *###*# *###*# ******
样本输出1
2
样本输入2
6 6 ****** ****** ****** ****** ****** ******
示例输出2
1262816
#include<bits/stdc++.h>
using namespace std;
int dx[4]={0,1,0,-1};
int dy[4]={1,0,-1,0};
int n,m,s=0;
bool vis[10][10];
char a[10][10];
int dfs(int x,int y){
if(x==n&&y==m){
s++;
}
else{
for(int i=0;i<=3;i++){
int nx=x+dx[i],ny=y+dy[i];
if(nx>=1 && nx