AcWing 3412. 邻域均值
原题链接
简单
邻域均值(二维前缀和)
#include <bits/stdc++.h>
using namespace std;
const int N = 610;
int s[N][N];
int n, l, r, t;
int main()
{
scanf("%d %d %d %d",&n, &l, &r, &t);
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
{
int x;
scanf("%d",&x);
s[i][j] = x + s[i-1][j] + s[i][j-1] - s[i-1][j-1];
}
int res = 0;
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
{
int x1 = max(1, i-r), y1 = max(1, j-r);
int x2 = min(n, i+r), y2 = min(n, j+r);
int sum = s[x2][y2] + s[x1-1][y1-1] - s[x1-1][y2] - s[x2][y1-1];
int cnt = (x2 -x1 + 1) * (y2 - y1 + 1);
if(sum <= cnt * t) res++;
}
cout<<res;
}