题目链接

题意

给你一个N*M的矩阵 (N,M <=2000)  把他分成两部分 使两部分的极差较大的一个最小  求这个最小值。然后分矩阵的要求是:每个部分内部的方块之间,可以通过上下左右相互到达,而且每个内部的方块之间互相到达,最多允许拐一次弯(不能出现“凹”233)

二分答案+贪心

二分上界是矩阵max-min

判断的时候 由于 分开的矩阵在每一行肯定是连续的 所以就按顺序扫一遍 判断一下在哪里分开即可

还有就是由于最大值最小值所在的位置不确定 ,我们需要旋转3次这个矩阵然后求最优答案

代码

#include<bits/stdc++.h>
#define MAXN 2017
#define INF 0x7f7f7f7f
using namespace std;
int N,M,a[MAXN][MAXN],maxa,mina=INF,ans=INF;
bool check(int tmp){int pos=1;for(int i=1;i<=N;i++){for(int j=1;j<=M;j++)if(a[i][j]<maxa-tmp)pos=max(j+1,pos);for(int j=1;j<=M;j++)if(a[i][j]>mina+tmp)if(j<pos)return 0;}return 1;
}
int Solve(){int l=0,r=maxa-mina;while(l<r){int mid=l+r>>1;if(check(mid))r=mid;else l=mid+1; } return l;
}
void flip1(){for(int i=1;i<=N/2;i++)for(int j=1;j<=M;j++)swap(a[i][j],a[N-i+1][j]);
}
void flip2(){for(int j=1;j<=M/2;j++)for(int i=1;i<=N;i++)swap(a[i][j],a[i][M-j+1]);
}int main()
{scanf("%d%d",&N,&M);for(int i=1;i<=N;i++)for(int j=1;j<=M;j++){scanf("%d",&a[i][j]);maxa=max(maxa,a[i][j]);mina=min(mina,a[i][j]);}flip2();ans=Solve();flip1();ans=min(ans,Solve());flip2();ans=min(ans,Solve());flip2();ans=min(ans,Solve());printf("%d\n",ans);return 0;
}

转载于:https://www.cnblogs.com/Elfish/p/7714458.html

洛谷3933 Chtholly Nota Seniorious 二分答案+贪心相关推荐

  1. 洛谷P3933 Chtholly Nota Seniorious 【二分 + 贪心 + 矩阵旋转】

    威廉需要调整圣剑的状态,因此他将瑟尼欧尼斯拆分护符,组成了一个nnn行mmm列的矩阵. 每一个护符都有自己的魔力值.现在为了测试圣剑,你需要将这些护符分成 A,B两部分. 要求如下: 圣剑的所有护符, ...

  2. 洛谷P1462 通往奥格瑞玛的道路 二分答案+最短路SPFA

    洛谷P1462 通往奥格瑞玛的道路 二分答案+最短路SPFA 二分交费最多的一次的钱数 然后只将符合要求的边加入图中 如果到终点的最短路大于等于血量 或者直接起点不能到达终点 那么说明不符合要求 需要 ...

  3. 洛谷 P1824 进击的奶牛 【二分答案】(求最大的最小值)

    题目链接:https://www.luogu.org/problemnew/show/P1824 题目描述 Farmer John建造了一个有N(2<=N<=100,000)个隔间的牛棚, ...

  4. 洛谷P1902 刺杀大使(二分答案+bfs验证)

    题目描述 伊朗伊斯兰革命卫队(某恐怖组织)正在策划一起刺杀行动,他们的目标是沙特驻美大 使朱拜尔.他们来到了沙特驻美使馆,准备完成此次刺杀,要进入使馆首先必须通过使馆前 的防御迷阵. 迷阵由 n*m ...

  5. [洛谷1462 ]通往奥格瑞玛的道路---二分答案+spfa

    题目背景 在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士,他是部落的中坚力量 有一天他醒来后发现自己居然到了联盟的主城暴风城 在被众多联盟的士兵攻击后,他决定逃回自己的家乡奥格瑞玛 题目描述 在艾泽拉斯, ...

  6. noip模拟赛 Chtholly Nota Seniorious

    题目背景 大样例下发链接: https://pan.baidu.com/s/1nuVpRS1 密码: sfxg こんなにも.たくさんの幸せをあの人に分けてもらった だから.きっと 今の.私は 谁が何と ...

  7. Chtholly Nota Seniorious

    题目背景 大样例下发链接: https://pan.baidu.com/s/1nuVpRS1 密码: sfxg こんなにも.たくさんの幸せをあの人に分けてもらった だから.きっと 今の.私は 谁が何と ...

  8. luogu3933 Chtholly Nota Seniorious

    http://www.elijahqi.win/archives/1442 题目背景 大样例下发链接: https://pan.baidu.com/s/1nuVpRS1 密码: sfxg こんなにも. ...

  9. 洛谷P2507 [SCOI2008]配对 题解(dp+贪心)

    洛谷P2507 [SCOI2008]配对 题解(dp+贪心) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1299251 链接题目地址:洛谷P2507 [S ...

最新文章

  1. Redux源码浅析系列(二):`combineReducer`
  2. [BUGKU][CTF][PWN][2020] PWN writeup
  3. 英雄多少钱steam_Steam农历新年特卖:越来越火热的中国单机游戏市场 | 游戏干线...
  4. 本地图片预览代码(支持 IE6、IE7)
  5. c语言查看错误步骤命令,C语言之预处理命令
  6. TFS 2010 使安装更容易,让VSS历史
  7. iOS 更新日志 - 持续更新中
  8. 4场直播丨Oracle、openGauss、易鲸捷EsgynDB
  9. win10taskkill强行结束进程_win10系统强制结束进程命令的方案
  10. 基于https的harbor部署与升级
  11. java用dockerfile生成镜像_【HAVENT原创】创建 Dockerfile 生成新的镜像,并发布到 DockerHub...
  12. 前端使用vue+ js-xlsl + elemen-ui实现导出Excel表格(绝对好使, 前端有问题直接关注我, 或者评论立刻给你回应, 专业解决)
  13. 蓦然认知全球发布会:用新的技术引擎为设备商和传统企业赋能丨Xtecher 观察
  14. java写入html文件乱码,java写入到html文件 打开是乱码
  15. windows 空会话 ipc$域控 SYSVOL 和NETLOGON共享
  16. Hub能新建但不能打开项目 Failed to connect to pipe_20220313
  17. 基因相关性——字符串入门
  18. 【Python自动化Excel】pandas处理Excel的拆分、合并
  19. 算法的时间与空间复杂度介绍
  20. Ik分词器(自定义分词-mysql)

热门文章

  1. Class.forName解析以及使用
  2. maven环境快速搭建
  3. 【oracle】sqlnet.ora 访问控制策略
  4. 内存管理 初始化(七)kmem_cache_init_late 初始化slab分配器(下)
  5. 《失业的程序员》(六):加班
  6. (转) Android生成签名文件并用其对apk文件进行签名
  7. ngnix+keepalived 实现N主高可用负载均衡web群集
  8. 学习OCS客户端定制
  9. mysql修改字符集utf8为utf8mb4
  10. Swift的控制转移语句-- fallthrough语句