CSP领域均值

题目传送门:
点击这里

#include<bits/stdc++.h>
#define N 601
using namespace std;
int a[N][N],psum[N][N];
//psum:prefixsum,前缀和 
int main()
{
	std::ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
	//加快输入输出速度 
	memset(psum,0,sizeof psum);
	int n,l,r,t;
	//矩阵长宽均为n,每个元素的范围时0到l;
	//某元素周围最多有r个元素,A
	//ij领域内所有元素均值小于等于t,则它处于灰度区域。 
	cin>>n>>l>>r>>t;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			cin>>a[i][j];
			psum[i][j]=psum[i][j-1]+psum[i-1][j]-psum[i-1][j-1]+a[i][j];
			// 此元素的前一个+此元素同列上一个-此元素上一行前一列 
		}
	 } 
	 int count =0;
	 for(int i=1;i<=n;i++)
	 {
	 	for(int j=1;j<=n;j++)
	 	{
	 		int left2=max(j-r,1),right2=min(j+r,n);
			int up=max(i-r,1),down=min(i+r,n);
			int t2 = psum[down][right2] - psum[down][left2 - 1] - psum[up - 1][right2] + psum[up - 1][left2 - 1];	
			if(t2<=(down-up+1)*(right2-left2+1)*t)
			count++;
		}
		
     }
		cout<<count<<endl;	
	
	return 0;
 } 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值