2 条题解

  • 1
    @ 2026-8-29 20:53:49
    #include <iostream>
    using namespace std;
    
    char board[1005][1005];
    
    int main() {
        int T;
        cin >> T;
        int dx[] = {-1,-1,-1,0,0,1,1,1};
        int dy[] = {-1,0,1,-1,1,-1,0,1};
        while (T--) {
            int n, m;
            cin >> n >> m;
            for (int i = 0; i < n; i++) {
                for (int j = 0; j < m; j++) {
                    cin >> board[i][j];
                }
            }
            long long sum = 0;
            for (int i = 0; i < n; i++) {
                for (int j = 0; j < m; j++) {
                    if (board[i][j] == '*') {
                        int nonMine = 0;
                        for (int d = 0; d < 8; d++) {
                            int ni = i + dx[d];
                            int nj = j + dy[d];
                            if (ni >= 0 && ni < n && nj >= 0 && nj < m) {
                                if (board[ni][nj] != '*') {
                                    nonMine++;
                                }
                            }
                        }
                        sum += nonMine;
                    }
                }
            }
            cout << sum << endl;
        }
        return 0;
    }
    
    
    
    • 0
      @ 2026-8-29 20:53:39
      using namespace std;
      
      char board[1005][1005];
      
      int main() {
          int T;
          cin >> T;
          int dx[] = {-1,-1,-1,0,0,1,1,1};
          int dy[] = {-1,0,1,-1,1,-1,0,1};
          while (T--) {
              int n, m;
              cin >> n >> m;
              for (int i = 0; i < n; i++) {
                  for (int j = 0; j < m; j++) {
                      cin >> board[i][j];
                  }
              }
              long long sum = 0;
              for (int i = 0; i < n; i++) {
                  for (int j = 0; j < m; j++) {
                      if (board[i][j] == '*') {
                          int nonMine = 0;
                          for (int d = 0; d < 8; d++) {
                              int ni = i + dx[d];
                              int nj = j + dy[d];
                              if (ni >= 0 && ni < n && nj >= 0 && nj < m) {
                                  if (board[ni][nj] != '*') {
                                      nonMine++;
                                  }
                              }
                          }
                          sum += nonMine;
                      }
                  }
              }
              cout << sum << endl;
          }
          return 0;
      }
      
      
      
      • 1

      信息

      ID
      1127
      时间
      1000ms
      内存
      256MiB
      难度
      8
      标签
      递交数
      41
      已通过
      6
      上传者