为什么全re,好像输入有问题,但不知道咋输入错了
  • 板块P1141 01迷宫
  • 楼主telankesi
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/1/19 09:17
  • 上次更新2023/10/24 03:39:08
查看原帖
为什么全re,好像输入有问题,但不知道咋输入错了
866969
telankesi楼主2023/1/19 09:17

#include<stdio.h>
int map[1001][1001];
int b[1001][1001];
int ans[1001];
int n, m;
int color = 0;
int s[4][2] = { {1,0},{0,1},{-1,0},{0,-1} }; 
void dfs(int x,int y,int a) {
    if (x<1||x>n||y<1||y>n||b[x][y])return;
    ans[color]++;
    b[x][y] = color;
    for (int i = 0; i < 4; i++) {
        
            if (a == 1&&map[x+s[i][0]][y+s[i][1]]==0)
                dfs(x + s[i][0], y + s[i][1], 0);
            if(a == 0 && map[x + s[i][0]][y + s[i][1]] == 1) dfs(x + s[i][0], y + s[i][1], 1);
        
    }


}
int main()
{
    
   
    scanf("%d %d", &n,&m);
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <=n; j++) {
            scanf("%d", &map[i][j]);
        }
    }
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
            if (!b[1001][1001]) {
                color++;
                dfs(i, j,map[i][j]);
               
            }
        }
    }
    for (int i = 1; i <= m; i++) {
        int x, y;
        scanf("%d %d", &x, &y);
      printf("%d\n",ans[b[x][y]]);
    }
    return 0;
}
2023/1/19 09:17
加载中...