30分WA求助
  • 板块P1605 迷宫
  • 楼主Blind_Swallow
  • 当前回复4
  • 已保存回复4
  • 发布时间2022/10/20 19:50
  • 上次更新2023/10/27 06:45:07
查看原帖
30分WA求助
532029
Blind_Swallow楼主2022/10/20 19:50
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int dx[5] = {0, 0, 0, 1, -1}, dy[5] = {0, 1, -1, 0, 0};
int n, m, t, sx, sy, fx, fy, ans;
bool wa[10][10], vis[10][10];
void dfs(int x, int y)
{
    if(x < 1 || x > n || y < 1 || y > m)
        return;
    if(wa[x][y] || vis[x][y])
        return;
    if(x == fx && y == fy)
    {
        ans++;
        return;
    }
    vis[x][y] = true;
    for(int i = 1; i <= 4; i++)
    {
        int nx = x + dx[i];
        int ny = y = dy[i];
        dfs(nx, ny);
    }
    vis[x][y] = false;
}
int main()
{
    scanf("%d%d%d", &n, &m, &t);
    scanf("%d%d%d", &sx, &sy, &fx, &fy);
    for(int i = 1; i <= t; i++)
    {
        int tmp1, tmp2;
        scanf("%d%d", &tmp1, &tmp2);
        wa[tmp1][tmp2] = true;
    }
    dfs(sx, sy);
    printf("%d", ans);
    return 0;
}
2022/10/20 19:50
加载中...