刷刷刷
biu~
☘️ 题目描述☘️
(1)将水管所在位置即周围位置先进行标记,为第一秒的时间,若灌溉时间超过一,再对二位数组进行一遍遍历,标记过的位置对周围再进行标记,大循环k−1k-1k−1次;
// 标记, 循环t次,
#include
using namespace std;
const int N = 110;
// 2.图, 标记,计数
int path[N][N], st[N][N], cnt;// 标记
void check(int x, int y) {path[x][y] = 1;if (!path[x - 1][y]) path[x - 1][y] = 1;if (!path[x + 1][y]) path[x + 1][y] = 1;if (!path[x][y - 1]) path[x][y - 1] = 1;if (!path[x][y + 1]) path[x][y + 1] = 1;
}
int main() {// 输入int n, m, t, k;// 1.n行m列图 t个水管口子, k时间内cin >> n >> m >> t;// 3.建图while (t--) {int x, y;cin >> x >> y;check(x, y);}cin >> k;int g = k - 1;if (k > 1) {while (g--) {for (int i = 1; i <= n; i++) {for (int j = 1; j <= n; j++) {if (path[i][j] == 1) {check(i, j);}}}}}for (int i = 1; i <= n; i++) {for (int j = 1; j <= m; j++) {if (path[i][j] == 1) {cnt++;}}}cout << cnt;return 0;
}