A. Pasha and Pixels (水题 暴力)

题意:

有一个n×m的矩阵,最开始所有的格子都是白色的。

一个人按照某种顺序将格子涂成黑的,如果某个格子已经是黑的则忽略。在涂色的过程中如果出现了2×2的全黑小方阵,则游戏失败。

输出游戏是在哪一步失败的,或者没有失败。

分析:

直接用一个矩阵模拟即可,每次给一个格子涂完色,判断一下包含这个格子的四个2×2方阵是否全威黑色,注意坐标不要出界。

 1 #include <iostream>
 2 #include <cstdio>
 3 
 4 const int maxn = 1000 + 10;
 5 int dx[] = {-1, -1, 1, 1};
 6 int dy[] = {1, -1, -1 ,1};
 7 int map[maxn][maxn];
 8 int n, m, k;
 9 
10 bool inside(int x, int y) { return x>=1 && x<=n && y>=1 && y<=m;  }
11 
12 bool judge(int x, int y)
13 {
14     for(int i = 0; i < 4; ++i)
15     {
16         int xx = x + dx[i];
17         int yy = y + dy[i];
18         if(inside(xx, yy) && map[xx][yy]
19            && inside(x, yy) && map[x][yy]
20            && inside(xx, y) && map[xx][y])
21             return true;
22     }
23 
24     return false;
25 }
26 
27 int main()
28 {
29     //freopen("in.txt", "r", stdin);
30 
31     scanf("%d%d%d", &n, &m, &k);
32 
33     for(int i = 1; i <= k; ++i)
34     {
35         int x, y;
36         scanf("%d%d", &x, &y);
37         map[x][y] = 1;
38         if(judge(x, y)) { printf("%d", i); return 0; }
39     }
40 
41     puts("0");
42 
43     return 0;
44 }
代码君

相关文章:

  • 2022-03-02
  • 2022-12-23
  • 2021-06-02
  • 2021-08-18
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-05
猜你喜欢
  • 2022-12-23
  • 2021-11-04
  • 2022-12-23
  • 2021-06-10
  • 2021-07-04
  • 2021-06-06
相关资源
相似解决方案