当前位置: 首页 > news >正文

CCF-CSP认证 202104-2邻域均值

题目描述

思路

二维数组前缀和,画图解决,需要理清楚多增加的元素,本题索引应从1开始,相当于多增加一行和一列0元素,注意边界。

代码

C++版:

#include <bits/stdc++.h>

using namespace std;
const int N = 610;

int main(){
	int n,L,r,t;
	int res=0; // 统计结果 
	cin>>n>>L>>r>>t; // 图像长宽,元素值范围上限,附近元素泛围,所有附近元素的平均值小于或等于的阈值 
//	vector<vector<int> > A(n+1,vector<int>(n+1,0)); // 二维数组前缀和 
	int A[N][N];
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			int x;
			cin>>x;
			A[i][j]=A[i-1][j]+A[i][j-1]+x-A[i-1][j-1];
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			// 右下角,小心边界 
			int x1=min(n,i+r);
			int y1=min(n,j+r);
			// 左上角,小心边界 
			int x2=max(1,i-r);
			int y2=max(1,j-r);
			int sum=A[x1][y1]-A[x1][y2-1]-A[x2-1][y1]+A[x2-1][y2-1];
			int k=(x1-x2+1)*(y1-y2+1); // 元素数量 
			if(sum<=k*t) res++;

		}
	}
	cout<<res;
	
	return 0;
}
http://www.dtcms.com/a/60598.html

相关文章:

  • 【js逆向】
  • 牛客周赛:84:C:JAVA
  • 亚信安全发布第七期《勒索家族和勒索事件监控报告》
  • 以太网基础Vlan划分实验
  • C++学习之QT综合项目二经典翻金币小游戏及打包
  • 【LeetCode合并区间C++实现】【c++】【合并区间】
  • javase集合框架List篇
  • ds回答 什么是数据召回
  • 【数据结构】二叉搜索树、平衡搜索树、红黑树
  • 【初探数据结构】带环链表:原理、判断与数学证明
  • 使用 Switch Plus 将 ADTS 文件转为 MP3 格式简单教程
  • 「mysql」Mac mysql一路畅通式安装
  • Linux基础开发工具—vim
  • 【JavaEE】SpringBoot快速上手,探秘 Spring Boot,搭建 Java 项目的智慧脚手架
  • 软件工程:软件开发之需求分析
  • volatile限定符
  • XXE靶机详细通关攻略(flag)
  • 订阅指南:用关键指标驱动业务增长
  • 小白学Agent技术[5](Agent框架)
  • Java多线程编程实战:synchronized与Lock锁对比
  • 【Mastering Vim 2_11】第八章:玩转 Vimscript(下)—— 从零开始打造一个 Vim9 插件(含完整发布流程)
  • Docker介绍和安装
  • 「MySQL 数据库优化」降低存储与查询成本的最佳实践
  • 【计算机组成原理】第三章 存储系统
  • 第八届蓝桥杯单片机省赛
  • 【08】单片机变量命名规范指南
  • AI编程工具-(七)
  • 【鸿蒙开发】入门篇:node与express
  • 优化 NFS 挂载参数以提升可靠性与容错性
  • Spring Boot 日志