news 2026/4/3 3:56:34

(新卷,200分)- 探索地块建立(Java JS Python)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
(新卷,200分)- 探索地块建立(Java JS Python)

(新卷,200分)- 探索地块建立(Java & JS & Python)

题目描述

给一块n*m的地块,相当于n*m的二维数组,每个元素的值表示这个小地块的发电量;

求在这块地上建立正方形的边长为c的发电站,发电量满足目标电量k的地块数量。

输入描述

第一行为四个按空格分隔的正整数,分别表示n, m , c k

后面n行整数,表示每个地块的发电量

输出描述

输出满足条件的地块数量

用例
输入2 5 2 6
1 3 4 5 8
2 3 6 7 1
输出4
说明
题目解析

本题最优解题思路是使用:二维矩阵前缀

JavaScript算法源码
/* JavaScript Node ACM模式 控制台输入获取 */ const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); const lines = []; let n, m, c, k; rl.on("line", (line) => { lines.push(line); if (lines.length === 1) { [n, m, c, k] = lines[0].split(" ").map(Number); } if (n && lines.length === n + 1) { const matrix = lines.slice(1).map((line) => line.split(" ").map(Number)); console.log(getResult(matrix, n, m, c, k)); lines.length = 0; } }); /** * * @param {*} matrix n*m的地块 * @param {*} n 地块行数 * @param {*} m 地块列数 * @param {*} c 正方形的发电站边长为c * @param {*} k 目标电量k */ function getResult(matrix, n, m, c, k) { const preSum = new Array(n + 1).fill(0).map(() => new Array(m + 1).fill(0)); for (let i = 1; i <= n; i++) { for (let j = 1; j <= m; j++) { preSum[i][j] = preSum[i - 1][j] + preSum[i][j - 1] - preSum[i - 1][j - 1] + matrix[i - 1][j - 1]; } } let ans = 0; for (let i = c; i <= n; i++) { for (let j = c; j <= m; j++) { const square = preSum[i][j] - (preSum[i - c][j] + preSum[i][j - c]) + preSum[i - c][j - c]; if (square >= k) ans++; } } return ans; }
Java算法源码
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); int c = sc.nextInt(); int k = sc.nextInt(); int[][] matrix = new int[n][m]; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { matrix[i][j] = sc.nextInt(); } } System.out.println(getResult(matrix, n, m, c, k)); } /** * @param matrix n*m的地块 * @param n 地块行数 * @param m 地块列数 * @param c 正方形的发电站边长为c * @param k 目标电量k * @return 可以建设几个发电站 */ public static int getResult(int[][] matrix, int n, int m, int c, int k) { int[][] preSum = new int[n + 1][m + 1]; for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { preSum[i][j] = preSum[i - 1][j] + preSum[i][j - 1] - preSum[i - 1][j - 1] + matrix[i - 1][j - 1]; } } int ans = 0; for (int i = c; i <= n; i++) { for (int j = c; j <= m; j++) { int square = preSum[i][j] - (preSum[i - c][j] + preSum[i][j - c]) + preSum[i - c][j - c]; if (square >= k) ans++; } } return ans; } }
Python算法源码
# 输入获取 n, m, c, k = map(int, input().split()) matrix = [list(map(int, input().split())) for i in range(n)] # 算法入口 def getResult(n, m, c, k, matrix): """ :param n: 调研区域的长,行数 :param m: 调研区域的宽,列数 :param c: 正方形电站的边长 :param k: 正方形电站的最低发电量 :param matrix: 调研区域每单位面积的发电量矩阵 :return: 返回调研区域有几个符合要求正方形电站 """ preSum = [[0 for j in range(m + 1)] for i in range(n + 1)] for i in range(1, n + 1): for j in range(1, m + 1): preSum[i][j] = preSum[i - 1][j] + preSum[i][j - 1] - preSum[i - 1][j - 1] + matrix[i - 1][j - 1] ans = 0 for i in range(c, n + 1): for j in range(c, m + 1): square = preSum[i][j] - (preSum[i - c][j] + preSum[i][j - c]) + preSum[i - c][j - c] if square >= k: ans += 1 return ans # 算法调用 print(getResult(n, m, c, k, matrix))
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/1 18:31:52

YOLO目标检测保障真实抽烟场景的检测准确率错报警降低80%

基于 YOLO 的视觉检测算法&#xff0c;解决单帧检测中把 “笔放嘴边” 误判为 “抽烟” 并错误报警的问题&#xff0c;核心目标是通过算法升级降低这类场景的错报率。 结论&#xff1a; 核心解决思路&#xff1a;单帧误检的核心是“特征相似无上下文验证”&#xff0c;因此优先…

作者头像 李华
网站建设 2026/3/16 23:55:09

YOLO模型训练、评估与推理

引言 计算机视觉技术正席卷各行各业——从自动驾驶、安防系统到医疗影像和工业自动化&#xff0c;目标检测模型的性能直接决定了应用的落地效果。在众多模型中&#xff0c;YOLO&#xff08;You Only Look Once&#xff09;凭借“速度与精度兼顾”的特性脱颖而出。本文将深入解析…

作者头像 李华
网站建设 2026/3/29 18:27:23

流量一上来就崩?老实说,是你没提前想明白

流量一上来就崩?老实说,是你没提前想明白 ——聊聊如何防止流量突增把服务器直接送走 大家好,我是 Echo_Wish。 做运维、搞架构这么多年,我见过最“刺激”的场面,永远不是宕机本身,而是流量突然暴涨的那一刻。 你永远忘不了那种感觉: 监控曲线突然竖起来 📈 CPU 飙…

作者头像 李华
网站建设 2026/3/31 23:01:07

吉时利6517B 静电计/高阻表: 高精度电学测量的专业选择

156/2558/3328 产品概述&#xff1a;在电学测量领域&#xff0c;尤其是微弱电流与高阻抗测量中&#xff0c;仪器的精度、灵敏度与稳定性直接决定了科研与工业检测的可靠性。吉时利&#xff08;Keithley&#xff09;作为精密测量仪器领域的全球领导者&#xff0c;其推出的6517B静…

作者头像 李华
网站建设 2026/4/1 23:31:51

【课程设计/毕业设计】基于SpringBoot的闲置物品交易系统基于springboot的闲一品闲置品交易平台【附源码、数据库、万字文档】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/3/31 15:38:42

【2026亲测有效】10款免费降AI工具全解析,轻松将AIGC率降至10%以下

上个月&#xff0c;室友在提交论文时&#xff0c;用检测系统一查&#xff0c;结果显示“AI率87%”。这个数字在只剩几天就要二次提交的情况下&#xff0c;确实会让人非常焦虑。 为了解决这个问题&#xff0c;我花时间把市面上能找到的降ai率工具都试了一遍&#xff0c;前后测试…

作者头像 李华