news 2026/6/17 2:08:46

P2216 [HAOI2007] 理想的正方形 [二维单调队列]

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
P2216 [HAOI2007] 理想的正方形 [二维单调队列]

P2216 [HAOI2007] 理想的正方形

时间限制: 1.00s 内存限制: 128.00MB

复制 Markdown

中文

退出 IDE 模式

题目描述

有一个 a×b 的整数组成的矩阵,现请你从中找出一个 n×n 的正方形区域,使得该区域所有数中的最大值和最小值的差最小。

输入格式

第一行为 3 个整数,分别表示 a,b,n 的值。

第二行至第 a+1 行每行为 b 个非负整数,表示矩阵中相应位置上的数。每行相邻两数之间用一空格分隔。

输出格式

仅一个整数,为 a×b 矩阵中所有“ n×n 正方形区域中的最大整数和最小整数的差值”的最小值。

输入输出样例

输入 #1复制运行

5 4 2 1 2 5 6 0 17 16 0 16 17 2 1 2 10 2 1 1 2 2 2

输出 #1复制运行

1

说明/提示

矩阵中的所有数都不超过 1,000,000,000。

20% 的数据 2≤a,b≤100,n≤a,n≤b,n≤10。

100% 的数据 2≤a,b≤1000,n≤a,n≤b,n≤100。

先进行一维的单调队列然后将一维的结果再次进行单调队列即可

#include <bits/stdc++.h> using namespace std; const int N=1e3+5; int a[N][N]; int cmax[N][N],cmin[N][N]; int q1[N],q2[N]; int n,m,len; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n>>m>>len; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++)cin>>a[i][j]; for(int i=1;i<=n;i++){ int l1=1,l2=1,r1=0,r2=0; for(int j=1;j<=m;j++){ while(l1<=r1&&j-q1[l1]>=len)l1++; while(l2<=r2&&j-q2[l2]>=len)l2++; while(l1<=r1&&a[i][j]>=a[i][q1[r1]])r1--; while(l2<=r2&&a[i][j]<=a[i][q2[r2]])r2--; q1[++r1]=j;q2[++r2]=j; cmax[i][j]=a[i][q1[l1]];cmin[i][j]=a[i][q2[l2]]; } } int ans=INT_MAX; for(int j=len;j<=m;j++){ int l1=1,l2=1,r1=0,r2=0; for(int i=1;i<=n;i++){ while(l1<=r1&&i-q1[l1]>=len)l1++; while(l2<=r2&&i-q2[l2]>=len)l2++; while(l1<=r1&&cmax[i][j]>=cmax[q1[r1]][j])r1--; while(l2<=r2&&cmin[i][j]<=cmin[q2[r2]][j])r2--; q1[++r1]=i;q2[++r2]=i; if(i>=len)ans=min(ans,cmax[q1[l1]][j]-cmin[q2[l2]][j]); } } cout<<ans<<'\n'; return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 13:07:07

医院导诊优化:患者问诊语音预处理系统部署

医院导诊优化&#xff1a;患者问诊语音预处理系统部署 随着智能医疗的发展&#xff0c;医院导诊系统的智能化升级成为提升服务效率的重要方向。传统人工导诊存在响应慢、信息记录不完整等问题&#xff0c;尤其在高峰时段容易造成患者等待时间过长。为此&#xff0c;将语音识别…

作者头像 李华
网站建设 2026/6/10 15:04:43

能否部署到云服务器?ECS实例安装unet镜像实战

能否部署到云服务器&#xff1f;ECS实例安装unet镜像实战 1. 技术背景与场景需求 随着AI图像生成技术的快速发展&#xff0c;人像卡通化已成为内容创作、社交娱乐和个性化服务中的热门应用。基于UNet架构的DCT-Net模型在保持人物特征的同时实现高质量风格迁移&#xff0c;具备…

作者头像 李华
网站建设 2026/6/10 19:18:03

PyTorch-2.x镜像保姆级教程:从nvidia-smi到torch.cuda实操

PyTorch-2.x镜像保姆级教程&#xff1a;从nvidia-smi到torch.cuda实操 1. 引言 深度学习开发环境的配置一直是工程实践中的一大痛点。尤其是在多GPU型号、CUDA版本不一致、依赖冲突频发的场景下&#xff0c;手动搭建PyTorch环境往往耗时耗力。为此&#xff0c;PyTorch-2.x-Un…

作者头像 李华
网站建设 2026/6/15 14:56:08

Swift-All低资源:小样本学习在垂直领域的应用

Swift-All低资源&#xff1a;小样本学习在垂直领域的应用 1. 技术背景与问题提出 随着大模型技术的快速发展&#xff0c;越来越多的企业和研究机构希望将预训练大模型应用于特定垂直领域&#xff0c;如医疗、金融、法律等。然而&#xff0c;这些领域普遍存在数据稀缺、标注成…

作者头像 李华
网站建设 2026/6/15 12:49:02

GPEN图片处理性能优化:减少内存占用的批处理大小设定

GPEN图片处理性能优化&#xff1a;减少内存占用的批处理大小设定 1. 引言 1.1 业务场景描述 在图像肖像增强领域&#xff0c;GPEN&#xff08;Generative Prior Embedded Network&#xff09;因其出色的面部细节恢复能力&#xff0c;被广泛应用于老照片修复、低质量图像增强…

作者头像 李华
网站建设 2026/6/15 12:07:06

GPT-OSS-20B + vLLM:高性能推理架构部署教程

GPT-OSS-20B vLLM&#xff1a;高性能推理架构部署教程 1. 技术背景与目标 随着大语言模型在自然语言处理领域的广泛应用&#xff0c;如何高效部署大规模开源模型成为工程实践中的关键挑战。GPT-OSS 是 OpenAI 推出的开源系列模型之一&#xff0c;其中 GPT-OSS-20B 指代参数量…

作者头像 李华