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

P2216 [HAOI2007] 理想的正方形

P2216 [HAOI2007] 理想的正方形

 

#include <bits/stdc++.h>
using namespace std;const int maxn = 1e3 + 10;
int a,b,n;
int c[maxn][maxn];
deque <int> dq1,dq2;
int max1[maxn][maxn],min1[maxn][maxn];
int max2[maxn][maxn],min2[maxn][maxn];int ans = 2e9;int main(){ios::sync_with_stdio(0);cin.tie(0);cin >> a >> b >> n; for(int i = 1; i <= a; i++){for(int j = 1; j <= b; j++){cin >> c[i][j];} }for(int i = 1; i <= a; i++){dq1.clear();dq2.clear();for(int j = 1; j <= b; j++){while(!dq1.empty() && j - dq1.front() + 1 > n) dq1.pop_front();while(!dq1.empty() &&c[i][dq1.back()] <= c[i][j]) dq1.pop_back();dq1.push_back(j);if(j >= n) max1[i][j - n + 1] = c[i][dq1.front()];while(!dq2.empty() && j - dq2.front() + 1 > n) dq2.pop_front();while(!dq2.empty() &&c[i][dq2.back()] >= c[i][j]) dq2.pop_back();dq2.push_back(j);if(j >= n) min1[i][j - n + 1] = c[i][dq2.front()];} }for(int j = 1; j <= b - n + 1; j++){dq1.clear();dq2.clear();for(int i = 1; i <= a; i++){while(!dq1.empty() && i - dq1.front() + 1 > n) dq1.pop_front();while(!dq1.empty() && max1[i][j] >= max1[dq1.back()][j]) dq1.pop_back();dq1.push_back(i);if(i >= n) max2[i - n + 1][j] = max1[dq1.front()][j];while(!dq2.empty() && i - dq2.front() + 1 > n) dq2.pop_front();while(!dq2.empty() && min1[i][j] <= min1[dq2.back()][j]) dq2.pop_back();dq2.push_back(i);if(i >= n) min2[i - n +1][j] = min1[dq2.front()][j];}}for(int i = 1; i <= a - n +1; i++){for(int j = 1; j <= b - n +1; j++){ans = min(ans,max2[i][j] - min2[i][j]);}}cout << ans;return 0;
}

  

http://www.hskmm.com/?act=detail&tid=8573

相关文章:

  • PuTTY下载和安装
  • 数据通路-单总线结构(最头晕的一集)
  • python基础篇-集合
  • #egsg:在同一程序中比较-计算圆的面积
  • 282 项多模态胃肠病学数据集:适配 VLM 与 MLLM 微调,融合医学图像与临床文本的医疗 AI 训练数据
  • 2-sat板子
  • centos 7中安装jenkins
  • pythonjs逆向 破解滑动验证码 - hello-*
  • 解决 pandas.to_csv 乱码、丢失行和自动换行问题 时间转换
  • JavaDay7
  • 前端场景题笔记
  • P3934 [Ynoi Easy Round 2016] 炸脖龙 I 做题记录
  • 【CompletableFuture 核心操作全解】详细注释版
  • 关于学术不端的一些思考
  • python基础-字典
  • pod 内nslookup请求时常异常
  • 单调队列优化DP
  • 4.5.11版本闪亮登场~快来看看有哪些新功能
  • 教你数分钟内创建并运行一个 DolphinScheduler Workflow!
  • AT_agc065_b [AGC065B] Erase and Insert
  • 《大模型时代——智能体的崛起与应用实践(微课视频版)》
  • 第三节:GoLangChain提示词(Prompts)处理详解
  • rhel8 中vdo 邏輯卷的邏輯擴容
  • Codeforces Round 1051 (Div. 2) 部分题解
  • kingbase金仓数据库的密码有效期和密码复杂度
  • HDF5文件
  • Error encountered when performing Introspect the Portion of idea Introspect using JDBC metadata在哪设置
  • 核桃 CSP-S 模拟
  • 正确输入连字号、连接号、破折号和负号
  • 9 月记录