2024OD机试卷-分配土地(java\python\c++)

题目:分配土地

题目描述

从前有个村庄,村民们喜欢在各种田地上插上小旗子,旗子上标识了各种 不同的只数字。某天集体村民决定将覆盖相同数字的最小矩阵形的土地分配给村里做出巨大贡献的村民,请问此次分配土地,做出贡献的村民种最大会分配多大面积?

输入描述

第-行输入 m 和 n,
·m 代表村子的土地的长
·n代表土地的宽
第二行开始输入地图上的具体标识

输出描述

此次分配士地,做出贡献的村民种最大会分配多大面积
备注
。旗子上的数字为1~500,土地边长不超过500
·未插旗子的士地用0标识

用例1

输入
3 3
101
000
010
输出
9
解释:土地上的旗子为1,其坐标分别为(0,0),(2,1)以及(0,2),为了覆
盖所有旗子,矩阵需要覆盖的横坐标为0和2,纵坐标为0和2,所
以面积为9,即(2-0+1)*(2-0+1)=9

用例2

输入
3 3
102
000
034
输出
1
说明
由于不存在成对的小旗子,故而返回1,即一块土地的面积。

java实现
import java.util.*;public class Test {static class Rect {int minH = Integer.MAX_VALUE;int maxH = Integer.MIN_VALUE;int minL = Integer.MAX_VALUE;int maxL = Integer.MIN_VALUE;private void setRow(int row) {this.minH = Math.min(this.minH, row);this.maxH = Math.max(this.maxH, row);}private void setCol(int col) {this.minL = Math.min(this.minL, col);this.maxL = Math.max(this.maxL, col);}}public static void main(String[] args) {Scanner sc = new Scanner(System.in);int m = sc.nextInt(); // 长(行数)int n = sc.nextInt(); // 宽(列数)HashMap<Integer, Rect> rects = new HashMap<>();for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {int num = sc.nextInt();if (num > 0) {rects.putIfAbsent(num, new Rect());rects.get(num).setRow(i);rects.get(num).setCol(j);}}}int maxArea = 0;for (int num : rects.keySet()) {Rect rect = rects.get(num);maxArea =Math.max(maxArea, (rect.maxH - rect.minH + 1) * (rect.maxL - rect.minL + 1));}System.out.println(maxArea);}
}
python实现
import sysclass Test:def __init__(self):self.minRow = sys.maxsizeself.maxRow = -sys.maxsizeself.minCol = sys.maxsizeself.maxCol = -sys.maxsizedef setRow(self, row):self.minRow = min(self.minRow, row)self.maxRow = max(self.maxRow, row)def setCol(self, col):self.minCol = min(self.minCol, col)self.maxCol = max(self.maxCol, col)m, n = map(int, input().split())rs = {}for i in range(m):nums = list(map(int, input().split()))for j in range(n):num = nums[j]if num > 0:rs.setdefault(num, Test())rs[num].setRow(i)rs[num].setCol(j)maxArea = 0
for num in rs:rt = rs[num]maxArea = max(maxArea, (rt.maxRow - rt.minRow + 1) * (rt.maxCol - rt.minCol + 1))print(maxArea)
c++实现
#include <bits/stdc++.h>using namespace std;class Rect {
public:int minH;int maxH;int minL;int maxL;Rect() : minH(INT_MAX), maxH(INT_MIN), minL(INT_MAX), maxL(INT_MIN) {}void setRow(int row) {minH = min(minH, row);maxH = max(maxH, row);}void setCol(int col) {minL = min(minL, col);maxL = max(maxL, col);}
};int main() {int m, n;cin >> m >> n;map<int, Rect> rects;for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {int num;cin >> num;if (num > 0) {if(rects.count(num) == 0) {rects[num] = Rect();}rects[num].setRow(i);rects[num].setCol(j);}}}int maxArea = 0;for (auto& p : rects) {Rect rect = p.second;int area = (rect.maxH - rect.minH + 1) * (rect.maxL - rect.minL + 1);maxArea = max(maxArea, area);}cout << maxArea << endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/4004.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电力电子技术——异步调制和同步调制

电力电子技术——异步调制和同步调制 在电力电子技术中,PWM(脉冲宽度调制)是一种常见的调节技术,可以用于控制电路中的电压或电流。异步调制和同步调制是两种常见的PWM调制方式,它们有着不同的原理和应用。 异步调制 异步调制(Asynchronous Modulation):异步调制是指…

前端性能优化篇之懒加载的概念、特点、实现原理、懒加载与预加载的区别

目录 懒加载的概念懒加载的特点懒加载的实现原理懒加载与预加载的区别 懒加载的概念 懒加载&#xff0c;也叫做延迟加载或按需加载&#xff0c;是一种用来优化网页性能的方法。在包含许多图片的长网页或应用中&#xff0c;如果一开始就加载所有图片&#xff0c;会导致页面加载…

Python无向图--邻接列表转为邻接矩阵表示

这段代码实现了一个简单的社交网络类 SocialNetwork&#xff0c;并提供了一些基本操作&#xff0c;如添加用户、用户之间的关注关系、获取关注者和正在关注的用户等功能。 总的来说&#xff0c;这段代码实现了一个简单的社交网络&#xff0c;提供了基本的用户管理和关系建立功…

如何基于Spring Boot项目从零开始打造一个基于数据库号段模式去中心化的分布式ID生成方案

一、前言 在当前系统开发过程中&#xff0c;单体架构的应用正在走向消亡&#xff0c;越来越多的应用开始分布式架构&#xff0c;在分布式架构设计过程中&#xff0c;有一个问题往往避免不了&#xff0c;就是分布式ID生成问题。 在常见解决方案中&#xff0c;有使用雪花算法或…

K8S探针分享

一&#xff0c;探针介绍 1 探针类型 livenessProbe&#xff1a;存活探针&#xff0c;用于判断容器是不是健康&#xff1b;如果探测失败&#xff0c;Kubernetes就会重启容器。 readinessProbe&#xff1a;就绪探针&#xff0c;用于判断是否可以将容器加入到Service负载均衡池…

Access2019直接将数据导入SQL Server数据库中,再直接链接回来

Access2019 的数据表等&#xff0c;除了通过 SSMA 导入数据库外&#xff0c;还可以利用access2019 自身的外部数据导出功能来达到目的。本文将详细介绍这一操作过程。 一、命令行操作阶段 1.以SA这一超级用户登录SQL Server&#xff0c;创建一个数据库&#xff0c;例如“个人…

网络安全培训对软件开发人员的重要性

微信搜索关注&#xff1a;网络研究观 阅读获取更多信息。 组织所经历的持续不断的网络威胁没有任何放缓的迹象&#xff0c;使得实现有效安全的任务变得越来越具有挑战性。 根据最新的 Verizon 数据泄露调查报告&#xff0c;2023 年高级攻击增加了 200% 以上。 IBM 数据泄露成…

阻塞IO下的echo实验

代码分析 echo代码位置&#xff1a;recipes-master/tpc/echo.cc echo_client.cc 服务端代码 int main(int argc, char* argv[]) {InetAddress listenAddr(3007);Acceptor acceptor(listenAddr);printf("Accepting... Ctrl-C to exit\n");int count 0;bool nodelay…

解释JDK、JRE和JVM的区别

JDK、JRE和JVM是Java编程语言中非常重要的三个组成部分&#xff0c;它们协同工作&#xff0c;使得Java程序能够在各种不同的平台上执行。下面详细解释这三者&#xff1a; JVM&#xff08;Java Virtual Machine&#xff09; JVM是Java虚拟机的缩写&#xff0c;它是一个虚拟的计…

Elasticsearch知识点表格总结

最近其实有点忙&#xff0c;在主攻Django项目和go语言项目&#xff0c;所以只能利用下班晚上和周末总结一些知识点&#xff0c;因为最近的公司的项目没有用上Elasticsearch&#xff0c;所以总结一下&#xff0c;方便以后复习&#xff0c;以及以后面试会用上&#xff0c;不然过段…

C# WinForm —— 09 标签、文本框、按钮控件

标签 Label 一般显示不能编辑的文本或图像 常用属性、事件&#xff1a; 属性用途(Name)标签对象的ID&#xff0c;在代码里引用标签的时候会用到,一般以 lbl 开头Text设置或获取 界面上显示的 文本信息Image显示图像ImageList图像集&#xff0c;通常和 ListView ToolStrip Tre…

【Linux网络编程】数据链路层

数据链路层 1.以太网帧格式2.重谈局域网转发的原理(基于协议)3.认识MTU3.1MTU对IP协议的影响3.2MTU对UDP协议的影响3.3MTU对于TCP协议的影响 4.ARP协议 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励…

【QT学习】9.绘图,三种贴图,贴图的转换,不规则贴图(透明泡泡),简单绘图工具制作

一。绘图的解释 Qt 中提供了强大的 2D 绘图系统&#xff0c;可以使用相同的 API 在屏幕和绘图设备上进行绘制&#xff0c;它主要基于QPainter、QPaintDevice 和 QPaintEngine 这三个类。 QPainter 用于执行绘图操作&#xff0c;其提供的 API 在 GUI 或 QImage、QOpenGLPaintDev…

【深度学习(1)】研0和研1如何上手深度学习及定方向

深度学习&#xff08;1&#xff09; 基础部分书籍鱼书 (理论部分) 视频课程我是土堆&#xff08;代码部分&#xff09; 提升部分李沐的动手学深度学习李沐老师的书 定方向网站&#xff1a; paperwithcode谷歌学术找论文 基础部分 书籍 鱼书 (理论部分) 适合入门&#xff0c;…

11.JAVAEE之网络原理1

1.应用层(和程序员接触最密切) 应用程序 在应用层这里,很多时候, 都是程序员"自定义"应用层协议的,(当然,也是有一些现成的应用层协议)&#xff08;这里的自定义协议,其实是非常简单的~~协议 >约定,程序员在代码中规定好,数据如何进行传输) 1.根据需求, 明确要传…

XTuner微调LLM:1.8B、多模态和Agent-笔记四

本次课程由XTuner 贡献者李剑锋、汪周谦、王群老师讲解【XTuner 微调 LLM&#xff1a;1.8B、多模态和 Agent】课程 课程视频&#xff1a;http:// https://b23.tv/QUhT6ni 课程文档&#xff1a;https://github.com/InternLM/Tutorial/blob/camp2/xtuner/readme.md 两种Finetun…

目标检测的mAP、PR指标含义

基本概念 什么是一个任务的度量标准。对于目标检测任务来说&#xff0c;它的首要目标是确定目标的位置并判别出目标类别。这里已医学图像为例&#xff0c;我们需要计算出血液红细胞&#xff08;RBC&#xff09;、白细胞&#xff08;WBC&#xff09;和血小板的数量。为了实现这一…

【网络安全】HTTP协议 — 基础

专栏文章索引&#xff1a;网络安全 有问题可私聊&#xff1a;QQ&#xff1a;3375119339 目录 学习目标​ 一、万维网的诞生与发展​编辑 1.万维网的诞生与发展 2.HTTP协议诞生与发展 二、网络基础 1.TCP/IP分层传输 1&#xff09;TCP/IP协议 2&#xff09;封装与拆封 …

stm32 hid自定义接收发送程序开发过程记录

cubleMX配置如下 修改端点描述符一次传输的数据大小 根据cubelMX标准在这里修改 编译错误 直接修改&#xff08;因为没有使用nodef &#xff09;编译通过 修改报告描述符&#xff08;默认的描述符无法传输数据&#xff09; 参考&#xff1a;USB协议详解第10讲&#xff08;USB描…

Xinlinx FPGA内的存储器BRAM全解

目录 一、总体概述1.7系列FPGA的BRAM特点2.资源情况 二、BRAM分类1.单端口RAM2.简单双端口RAM3.真双端口RAM 三、BRAM的读写1、Primitives Output Registers读操作注意事项2.三种写数据模式&#xff08;1&#xff09;Write_First&#xff08;2&#xff09;Read_First&#xff0…