1 条题解

  • 1
    @ 2024-11-24 23:55:34
    #include <iostream>
    #include <vector>
    #include <queue>
    using namespace std;
    vector<vector<int>> g(50, vector<int>(50, 0));
    int dx[] = {0, 0, -1, 1};
    int dy[] = {1, -1, 0, 0};
    void bfs()
    {
        queue<pair<int,int> > q;
        g[0][0] = 2;
        q.push({0, 0});
        while(q.size())
        {
            auto t = q.front();
            q.pop();
            for(int i = 0; i < 4; ++ i)
            {
                int x = t.first + dx[i], y = t.second + dy[i];
                if(x >= 0 && x < 30 && y >= 0 && y < 40)
                {
                    if(g[x][y] == 0)
                    {
                        g[x][y] = 2;
                        q.push({x, y});
                    }
                }
    
            }
        }
    }
    void solve()
    {
        for(int i = 0; i < 30; ++ i)
        {
            for(int j = 0; j < 40; ++ j)
            {
                scanf("%1d", &g[i][j]);
            }
        }
        int res = 0;
        bfs();
        for(int i = 0; i < 30; ++ i)
        {
            for(int j = 0; j < 40; ++ j)
            {
                if(g[i][j] == 2) res ++;
            }
        }
    
        cout << res << '\n';
    
    }
    int main()
    {
        solve();
        return 0;
    }
    
    • 1

    信息

    ID
    5510
    时间
    1000ms
    内存
    256MiB
    难度
    9
    标签
    递交数
    13
    已通过
    4
    上传者