CCF202104-2邻域均值(c++)

CCF202104-2邻域均值(c++),第1张

CCF202104-2邻域均值(c++) 题目:

代码一:(暴力求解,70分)
#include 
#include 
using namespace std;
int n,L,r,t;
int count=0;
int main() {
	cin>>n>>L>>r>>t;
	int a[n][n];
	for(int i=0; i>a[i][j];
	for(int i=0; i 
 代码二:(代码一优化,100分) 
#include 
#include 
using namespace std;
int main() {
	int n,L,r,t;
	cin>>n>>L>>r>>t;
	int a[n][n];
	for(int i=0; i>a[i][j];
	int sum=0;    //元素和
	int num=0;    //元素个数
	int ans=0;    //结果
	for(int i=0; i=0) start_x=i-r;
		else start_x=0;
		if(i+r>=n) end_x=n-1;
		else end_x=i+r;
		if(0+r>=n) end_y=n-1;
		else end_y=0+r;
		for(int x=start_x; x<=end_x; x++) {
			for(int y=0; y<=end_y; y++) {
				sum+=a[x][y];
				num++;
			}
		}
		if((double)sum/num<=(double)t) ans++;
		//再求此行其他元素的元素和,元素个数,平均值
		for(int j=1; j=n) {
				num=num-(end_x-start_x+1);
				for(int k=start_x; k<=end_x; k++)
					sum-=a[k][j-r-1];
			} else {
				for(int k=start_x; k<=end_x; k++) {
					sum-=a[k][j-r-1];
					sum+=a[k][j+r];
				}
			}
			if((double)sum/num<=(double)t) ans++;
		}
	}
	cout<

优化思想:每一行的第i个元素的邻域根据此行的第(i-1)个元素的邻域进行计算。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5611251.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存