22 条题解

  • 0
    @ 2025-9-22 17:08:26
    #include <iostream>
    #include <vector>
    using namespace std;
    const int dx[] = {-1, -1, -1, 0, 0, 1, 1, 1};
    const int dy[] = {-1, 0, 1, -1, 1, -1, 0, 1};
    
    int main() {
    int n, m;
    cin >> n >> m;
    vector<string> grid(n);
    for (int i = 0; i < n; i++) {
    cin >> grid[i];
    }
    vector<vector<char>> result(n, vector<char>(m));for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            if (grid[i][j] == '*') {
                result[i][j] = '*';
            } else {
                int count = 0;
                for (int k = 0; k < 8; k++) {
                    int ni=i+dx[k];
                    int nj=j+dy[k];
                    if (ni>=0&&ni<n&&nj>=0&&nj<m) {
                        if (grid[ni][nj]=='*') {
                            count++;
                        }
                    }
                }
                result[i][j]='0'+count;
            }
        }
    }
    
    for (int i=0;i<n;i++) {
        for (int j=0;j<m;j++) {
            cout<<result[i][j];
        }
        cout<<'\n';
    }
    
    return 0;
    }
    

    信息

    ID
    104
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    173
    已通过
    57
    上传者