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

OD C卷 - 分配土地

分配土地(100)

  • 矩形土地上插上小旗子,旗子上数字从1->500;
  • 数值为0表示该土地上没有旗子,土地边长不超过500;
  • 将覆盖相同旗子数字的最小矩阵的土地,分配给有贡献的人,最大可以分配多大面积?

输入描述:
第一行输入m,n; m表示土地长,n表示宽;
第二行输入土地的标识;
输出描述:
最大分配的面积

示例1
输入:
3 3
1 0 1
0 0 0
0 1 0
输出:
9
说明:覆盖旗子1的最小矩阵为3*3

示例2
输入:
3 3
1 0 2
0 0 0
0 3 4
输出:
1

示例3
输入:
3 3
2 0 2
0 2 1
3 0 3
输出:
6

思路:

  • 记录同一个旗子数字的最大长、宽
  • 计算覆盖旗子数字最小矩阵的面积,取最大面积

row, col = list(map(int, input().strip().split()))
matrix = []
for i in range(row):matrix.append(list(map(int, input().strip().split())))# 统计旗子
stats_dict = {}
for i in range(row):for j in range(col):if matrix[i][j]:# 统计当前旗子数字flag = matrix[i][j]if flag not in stats_dict:stats_dict[flag] = [[i, j], [i, j], [0, 0]] # [第一个旗子位置, 最大长宽位置, 长宽间距]else:# 更新stats_dictstart, end, dist = stats_dict[flag]if abs(i - start[0]) > dist[0]:end[0] = idist[0] = abs(i - start[0])if abs(j - start[1]) > dist[1]:end[1] = jdist[1] = abs(j - start[1])#
# 计算面积,并取最大值
max_area = 0
for k, v in stats_dict.items():start, end, _ = vcur_area = (abs(end[0] - start[0]) + 1) * (abs(end[1] - start[1]) + 1)if cur_area > max_area:max_area = cur_areaprint(max_area)

其他解法:

params = [int(x) for x in input().split(" ")]
a = params[0]
b = params[1]
nums = [0 for x in range(501)]
max_row = [0 for x in range(501)]
max_col = [0 for x in range(501)]
min_row = [502 for x in range(501)]
min_col = [502 for x in range(501)]for i in range(a):params = [int(x) for x in input().split(" ")]for j in range(b):c = params[j]nums[c] = 1max_row[c] = max(max_row[c], i)max_col[c] = max(max_col[c], j)min_row[c] = min(min_row[c], i)min_col[c] = min(min_col[c], j)max_area = 0
for i in range(1, 501):c = nums[i]if(nums[i] == 1):max_area = max(max_area, (max_row[i]-min_row[i]+1) * (max_col[i]-min_col[i]+1))print(max_area)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 在 Django 模板中渲染并行数组
  • Es6常用的一些数组处理方法
  • JetBrains:Wrong tag。注释告警
  • 代码随想录算法训练营第三十天 | 贪心算法 part04
  • Python接口自动化测试框架(实战篇)-- Jenkins持续集成
  • PXE+Kickstart自动化安装操作系统
  • 荒原之梦考研:考研二战会很难吗?
  • 二十八、【人工智能】【机器学习】【PyTorch】- 手写体识别
  • 下一个排列
  • FFmpeg有理数相关的源码:AVRational结构体和其相关的函数分析
  • 英伟达显卡查看占用情况
  • 设计模式实战:报表生成系统的设计与实现
  • Chapter 22 数据可视化——折线图
  • Chapter 26 Python魔术方法
  • 用phpstudy搭建MySQL数据库
  • [译]CSS 居中(Center)方法大合集
  • 【剑指offer】让抽象问题具体化
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • bearychat的java client
  • Centos6.8 使用rpm安装mysql5.7
  • CSS居中完全指南——构建CSS居中决策树
  • CSS实用技巧干货
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • java中的hashCode
  • mysql外键的使用
  • PaddlePaddle-GitHub的正确打开姿势
  • spring boot 整合mybatis 无法输出sql的问题
  • Xmanager 远程桌面 CentOS 7
  • 基于axios的vue插件,让http请求更简单
  • 解决iview多表头动态更改列元素发生的错误
  • 前端每日实战:70# 视频演示如何用纯 CSS 创作一只徘徊的果冻怪兽
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 详解NodeJs流之一
  • 一道面试题引发的“血案”
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • ​一些不规范的GTID使用场景
  • # Apache SeaTunnel 究竟是什么?
  • (1)Jupyter Notebook 下载及安装
  • (39)STM32——FLASH闪存
  • (C语言)逆序输出字符串
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (编译到47%失败)to be deleted
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (一)基于IDEA的JAVA基础1
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • .chm格式文件如何阅读
  • .gitignore文件忽略的内容不生效问题解决
  • .NET Core 通过 Ef Core 操作 Mysql
  • .NET DataGridView数据绑定说明
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题