【CCF】202104

本文档详细讲解了C++中如何实现灰度图像的直方图计算,并配以202104-1部分的满分代码实例,接着介绍了202104-2中的矩阵操作优化,涉及二维数组遍历和求和功能,以及如何通过函数计算特定区域的平均值,针对编程挑战给出了70分解决方案。
摘要由CSDN通过智能技术生成

学习内容:202104-1

灰度直方图100分

#include<iostream>
using namespace std;
int n,m,L;
int A[501][501];
int h[257];
int main()
{
	cin>>n>>m>>L;
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<m;j++)
		{
		   cin>>A[i][j];
		   h[A[i][j]]++;
		}
	}
	for(int i=0;i<L;i++)
	{
		cout<<h[i]<<" ";
	}
	cout<<endl;
	return 0;
}

202104-2

70分

#include<iostream>
using namespace std;
int n,L,r,t;
int A[600][600];
int sum1,cnt;
int ans=0;
void func(int x1,int x2,int y1,int y2)
{
	sum1=0;
	cnt=(x2-x1+1)*(y2-y1+1);
	for(int i=x1;i<=x2;i++)
	{
		for(int j=y1;j<=y2;j++)
		{
			sum1+=A[i][j];
		}
	}
	//cout<<sum1<<" "<<cnt<<" ";
	double anv=(double)sum1/cnt;
	if(anv<=t)
	  ans++;
}
int main()
{
	cin>>n>>L>>r>>t;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
			cin>>A[i][j];
	}
	
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			int xl,xr,yu,yb;
			xl=i-r<1?1:i-r;
			xr=i+r>n?n:i+r;
			yu=j-r<1?1:j-r;
			yb=j+r>n?n:j+r;
			//cout<<i<<" "<<j<<" "<<xl<<" "<<xr<<" "<<yu<<" "<<yb<<" ";
			func(xl,xr,yu,yb);
		}
	}
	cout<<ans<<endl;
	return 0;
}

学习产出:

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值