P1605 迷宫
代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int arr[10][10] = { 0 }, n, m, t, sx, sy, fx, fy, x, y, cnt = 0;;
int dx[4] = { -1,1,0,0 }, dy[4] = { 0,0,-1,1 };
void dfs(int x, int y)
{
if (x == fx && y == fy)
{
cnt++;
return;
}
for (int i = 0; i < 4; i++)
{
if (arr[x + dx[i]][y + dy[i]] == 1)
{
arr[x + dx[i]][y + dy[i]] = 0;
dfs(x + dx[i], y + dy[i]);
arr[x + dx[i]][y + dy[i]] = 1;
}
}
}
int main()
{
scanf("%d%d%d", &n, &m, &t);
scanf("%d%d%d%d", &sx, &sy, &fx, &fy);
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{
arr[i][j] = 1;
}
}
for (int i = 0; i < t; i++)
{
scanf("%d%d", &x, &y);
arr[x][y] = 0;
}
arr[sx][sy] = 0;
dfs(sx, sy);
printf("%d", cnt);
return 0;
}