1 条题解
-
1
#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
- 上传者