#include <bits/stdc++.h>
using namespace std;
int main() {
int n, l, r, t;
cin >> n >> l >> r >> t;
vector<vector<int>> a(n, vector<int>(n)); //n*n的数组
for (int i = 0; i < n; i++) { //输入数组
for (int j = 0; j < n; j++) {
cin >> a[i][j];
}
}
vector<vector<int>> temp(n, vector<int>(n)); //n*n的temp数组
int ans = 0;
for (int m = 0; m < n ; m++) {
for (int p = 0; p < n ; p++) { //按行输入 所以可以按行存储r个值得合
int min_x = max(0, p - r);
int max_x = min(n - 1, p + r);
for (int w = min_x; w <= max_x; w++) { //有w个列
temp[m][p] += a[m][w];
}
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
int sum = 0;
int min_x = max(0, i - r); //行的下标
int max_x = min(n - 1, i + r);
int min_y = max(0, j - r); //列的下标
int max_y = min(n - 1, j + r);
for (int d = min_x; d <= max_x; d++) {
sum += temp[d][j]; //按行相加
}
if (sum <= t * (max_x - min_x + 1) * (max_y - min_y + 1)) { //坐标相减数量要+1
ans++;
}
}
}
cout << ans;
return 0;
}
领域均值 csp202104-2#include <bits/stdc++.h>using namespace std;int main() { int n, l, r, t; cin >> n >> l >> r >> t; vector<vector<int>> a(n, vector<int>(n)); //n*n的数组 for (int i = 0; i < n; i++) {