1 条题解
-
1
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int INF = 0x3f3f3f3f; const ll mod = 998244353; const int N = 5e2 + 10; int a[N][N], dp[N][N]; int dx[] = {1, -1, 0, 0}; int dy[] = {0, 0, 1, -1}; int n, m, d, ans; void dfs(int x, int y, int cnt) { if (dp[x][y] != 0) { return; } dp[x][y] = cnt; for (int i = 0; i < 4; i++) { int nx = x + dx[i]; int ny = y + dy[i]; if (nx >= 1 && nx <= n && ny >= 1 && ny <= m && abs(a[nx][ny] - a[x][y]) <= d) { dfs(nx, ny, cnt); } } } int main() { scanf("%d%d%d", &n, &m, &d); for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { scanf("%d", &a[i][j]); } } for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { if (dp[i][j] == 0) { ans++; dfs(i, j, ans); } } } printf("%d", ans); return 0; }
- 1
信息
- ID
- 7
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- (无)
- 递交数
- 136
- 已通过
- 34
- 上传者