因为是最小值的最大值,首先我们想到用二分来查找答案。
剩下的就是实现判断mid是否可行的方法。
我们用vis[i][j]表示是否某行的i,j是大于等于mid的。
当下次出现i,j便说明2行组成一个矩形是可行的。

 for(int i=1;i<=n;i++){cnt=0;for(int j=1;j<=m;j++)if(a[i][j]>=mid){cnt++;p[cnt]=j;}int ax=0;for(int j=1;j<=cnt;j++)for(int k=1;k<j;k++){if(vis[p[k]][p[j]])return 1;vis[p[k]][p[j]]=1;}

复杂度;i,j最多的组合是n*(n-1)/2。判断的复杂度近似可以看成n*m.
总复杂度为o(nm*log a[][])

#include<bits/stdc++.h>
using namespace std;
const int N=1030;
int mid,l,r,m,n,p[N],jj[N],a[N][N],vis[N][N],miner=1e9,maxer;
bool az(){memset(vis,0,sizeof(vis));int cnt=0;for(int i=1;i<=n;i++){cnt=0;for(int j=1;j<=m;j++)if(a[i][j]>=mid){cnt++;p[cnt]=j;}int ax=0;for(int j=1;j<=cnt;j++)for(int k=1;k<j;k++){if(vis[p[k]][p[j]])return 1;vis[p[k]][p[j]]=1;}}return 0;
}
int main()
{    //freopen("p.in","r",stdin);scanf("%d%d",&n,&m);for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){scanf("%d",&a[i][j]);miner=min(miner,a[i][j]);maxer=max(maxer,a[i][j]);}l=miner;r=maxer;while(l<r){mid=l+(r-l+1)/2;if(az())l=mid;else r=mid-1;}cout<<r;return 0;
}

View Code

实现查找满足条件的最大值

    while(l<r){mid=l+(r-l+1)/2;if(az())l=mid;else r=mid-1;}

View Code

转载于:https://www.cnblogs.com/lxzl/p/9554703.html

CF 333D Characteristics of Rectangles相关推荐

  1. Codeforces 333D Characteristics of Rectangles

    二分. 收获:二分判断函数中,不一定非要解合法才返回真,只要它能单调的逼近真正的解即可.比如这道题中一些值在矩阵中不一定存在但是判断函数仍然返回1,最终得到的答案一定是存在的. 代码: #includ ...

  2. 【打CF,学算法——二星级】Codeforces Round #313 (Div. 2) B. Gerald is into Art(水题)...

    [CF简单介绍] 提交链接:http://codeforces.com/contest/560/problem/B 题面: B. Gerald is into Art time limit per t ...

  3. 【打CF,学算法——二星级】CodeForces 292A SMSC (模拟)

    [CF简介] 提交链接:CF 292A 题面: A. SMSC time limit per test   2 seconds memory limit per test  256 megabytes ...

  4. 『参考』.net CF组件编程(4)——为自定义组件添加工具箱图标!

    前言: 在前三篇的文章中,和大家一起创建了一个用于TCP连接检测的小组件,如果你记不得了,可以通过以下链接去回顾一下: 『参考』.net CF组件编程(1)--基础之后 『参考』.net CF组件编程 ...

  5. R语言ggplot2可视化、在可视化区域中自定义添加多个大小不同矩形阴影区域、自定义配置大小不同矩形阴影区域的颜色(Adding multiple shadows/rectangles)

    R语言ggplot2可视化.在可视化区域中自定义添加多个大小不同矩形阴影区域.自定义配置大小不同矩形阴影区域的颜色(Adding multiple shadows/rectangles) 目录

  6. matplotlib可视化基本散点图、在图像多个指定区域绘制方框、进行自定义色彩填充(Draw Multiple Rectangles)

    matplotlib可视化基本散点图.在图像多个指定区域绘制方框.进行自定义色彩填充(Draw Multiple Rectangles) 目录

  7. OC对象 vs CF对象

    2019独角兽企业重金招聘Python工程师标准>>> OC对象 vs CF对象 在ARC场景下,对象所有权没有转换 使用__bridge关键字即可实现CF对象和OC对象之间的自由转 ...

  8. CF 990A. Commentary Boxes【数学/模拟】

    [链接]:CF [题意]:对于一个数n,每次加一的代价是a,每次减一的代价是b,求被m整除时的最小代价. [分析]:分情况讨论,自己多举几个栗子. [代码]: #include<cstdio&g ...

  9. SAP QM QE02 修改检验结果,报错 -No characteristics were found–

    SAP QM QE02 修改检验结果,报错 -No characteristics were found– 已经执行完事务代码QE01为检验批9000000208的0010工序录入好了检验结果. 试图 ...

最新文章

  1. etl常用的三种工具介绍_Adobe Photoshop常用修图插件+屏幕模式+内容感知移动工具介绍...
  2. 【Linux入门到精通系列讲解】内存管理malloc和free函数
  3. 图像的放大与缩小(2)——双线性插值放大与均值缩小
  4. java 面试题三十二 mysql查询面试题
  5. [转]完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法
  6. java解压服务器文件夹,java获取远程服务器上的文件夹
  7. 消息队列面试 - 如何解决消息队列的延时以及过期失效问题?
  8. android paint 线宽_Paint setStrokeWidth方法:设置空心线宽
  9. c语言禁止优化某段代码,C语言优化小技巧
  10. go nil json.marshal 完是null_字节跳动踩坑记#3:Go服务灵异panic
  11. java单线程任务调度_一文详解Spring任务执行和调度(小结)
  12. SQLite:在Julia中判断一个表是否存在数据库中?
  13. 物流企业matlab效率,基于DEA原理的物流企业综合效率评价
  14. python 赚钱 小项目_用Python赚钱的5个方法,教你业余时间月赚几千外快
  15. html5 3d场景设计,三维场景设计是什么_三维场景设计的介绍
  16. 骚男的计算机音乐,lol骚男战歌bgm_lol骚男战歌背景音乐汇总_快吧游戏
  17. 微信朋友圈会在服务器上保留多久,微信朋友圈设置多久可见,暴露了你的为人...
  18. IReport 使用记录 主报表和子报表数据传递
  19. sap 用户权限表_sap权限相关后台表
  20. 【天翼云服务器】新服务器centos环境搭建,按照docker环境,解决相关配置问题。

热门文章

  1. java前方交会_JAVA:距离前方交会算法GUI实现
  2. python 拓扑排序_Python 拓扑排序
  3. smc K9F1208U0M 读写操作 续(s3c2410 nand flash 学习)
  4. 杂谈《流浪地球》与认知
  5. 学习手机维修的重要的三点
  6. 滚珠丝杠与滚珠丝杠副区别
  7. 车联网,车载ivi(hu)等。
  8. WordPress 五个最好的免费幻灯片插件slideshow plugins
  9. 测试php phpinfo,PHP phpinfo() 函数 500 error 错误的终极解决办法
  10. 三年级能用计算机吗,三年级计算机教学计划