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

wordpress下一篇调用/百度推广优化怎么做

wordpress下一篇调用,百度推广优化怎么做,网站设计标杆企业,品牌推广方案包括哪些[bzoj 1047] [HAOI2007]理想的正方形 Description 有一个a * b的整数组成的矩阵,现请你从中找出一个n * n的正方形区域,使得该区域所有数中的最大值和最小值 的差最小。 Input 第一行为3个整数,分别表示a,b,n的值第二行至第a1行每行为b个非负…

[bzoj 1047] [HAOI2007]理想的正方形

Description

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

Input

第一行为3个整数,分别表示a,b,n的值第二行至第a+1行每行为b个非负整数,表示矩阵中相应位置上的数。每
行相邻两数之间用一空格分隔。
100%的数据2<=a,b<=1000,n<=a,n<=b,n<=1000

Output

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

Sample Input

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

Sample Output

1

一个显然结论:一个矩阵中最值一定是这个矩阵每行最值中的一个.
由于给定了我们矩阵大小,要求我们在线性的时间内求出所有区间最值,所以我们考虑使用单调队列.我们先处理好子矩阵每一行的最值,即一个数左边n个数中的最值.然后再竖着跑一下单调队列就可以了,其实主要是考察单调队列的熟练运用.思路并不难.

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;#define id first
#define val secondtypedef pair<int,int> pii;static const int maxm=1e3+10;
static const int INF=~(1<<31);int v[maxm][maxm],mx[maxm][maxm],mn[maxm][maxm],Max[maxm],Min[maxm];
pii Q[maxm];
int head,tail,A,B,n;int main(){scanf("%d%d%d",&A,&B,&n);for(int i=1;i<=A;i++)for(int j=1;j<=B;j++)scanf("%d",&v[i][j]);for(int i=1;i<=A;i++){head=1,tail=1;for(int j=1;j<=B;j++){while(head<=tail&&Q[tail].val<=v[i][j])tail--;Q[++tail].val=v[i][j];Q[tail].id=j;while(head<=tail&&Q[head].id<j-n+1)head++;if(j>=n)mx[i][j]=Q[head].val;}head=1,tail=1;for(int j=1;j<=B;j++){while(head<=tail&&Q[tail].val>=v[i][j])tail--;Q[++tail].val=v[i][j];Q[tail].id=j;while(head<=tail&&Q[head].id<j-n+1)head++;if(j>=n)mn[i][j]=Q[head].val;}}int ans=INF;for(int i=n;i<=B;i++){head=1,tail=1;for(int j=1;j<=A;j++){while(head<=tail&&Q[tail].val>=mn[j][i])tail--;Q[++tail].val=mn[j][i];Q[tail].id=j;while(head<=tail&&Q[head].id<j-n+1)head++;if(j>=n)Min[j]=Q[head].val;}head=1,tail=1;for(int j=1;j<=A;j++){while(head<=tail&&Q[tail].val<=mx[j][i])tail--;Q[++tail].val=mx[j][i];Q[tail].id=j;while(head<=tail&&Q[head].id<j-n+1)head++;if(j>=n)Max[j]=Q[head].val;}for(int j=n;j<=A;j++)ans=min(ans,Max[j]-Min[j]);}printf("%d\n",ans);return 0;
}

传送门

转载于:https://www.cnblogs.com/Exbilar/p/6852551.html

http://www.jmfq.cn/news/5175217.html

相关文章:

  • 有没有可以做游戏的网站吗/深圳市seo点击排名软件价格
  • 最火的做牛排沙拉网站/宁波seo搜索引擎优化
  • 做网站大家都找谁/百度网站提交收录入口
  • 博罗做网站哪家强/微信广告推广价格表
  • 交友网站建设的栏目规划/百度云搜索入口
  • 网站开发常遇到客户问题/百度推广如何代理加盟
  • 爱做网站yeele/快速优化系统
  • 服务器搭建网站数据库/产品线上推广渠道
  • 要做网站到哪里做/网站设计规划
  • 自己建设企业网站/杭州专业seo服务公司
  • 做网站字体一般设置/关键词搜索工具好站网
  • 做网站用小型机或服务器/长尾关键词是什么
  • 怎么接做网站的任务/查看域名每日ip访问量
  • 网站面试通知表格怎么做/西安网站优化培训
  • 无锡网站建设公司怎么样/怎么免费创建网站
  • 所有免费的网站有哪些/泉州排名推广
  • 做网站的一个月能赚多少钱/公司网站免费建站
  • 做网站 需要什么营业执照/深圳市社会组织总会
  • 互联网金融p2p网站建设模板/关键词优化难度查询
  • 南通网站制作计划/合肥seo推广培训班
  • 推广游戏网站怎么做/品牌推广方案包括哪些
  • 找团队做网站/推广搜索引擎
  • 深圳哪里可以做物流网站/互联网推广
  • 2免费做网站/长沙百度推广排名
  • 装修案例分析/seo专业课程
  • 名师工作室网站建设现状调查/培训计划模板
  • 网站恶意刷/郑州seo课程
  • 教育网站制作服务/广点通广告投放平台
  • 中国第一营销网/seo初学教程
  • 乌鲁木齐网络问政平台/网站优化培训