CF 333D Characteristics of Rectangles
因为是最小值的最大值,首先我们想到用二分来查找答案。
剩下的就是实现判断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相关推荐
- Codeforces 333D Characteristics of Rectangles
二分. 收获:二分判断函数中,不一定非要解合法才返回真,只要它能单调的逼近真正的解即可.比如这道题中一些值在矩阵中不一定存在但是判断函数仍然返回1,最终得到的答案一定是存在的. 代码: #includ ...
- 【打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 ...
- 【打CF,学算法——二星级】CodeForces 292A SMSC (模拟)
[CF简介] 提交链接:CF 292A 题面: A. SMSC time limit per test 2 seconds memory limit per test 256 megabytes ...
- 『参考』.net CF组件编程(4)——为自定义组件添加工具箱图标!
前言: 在前三篇的文章中,和大家一起创建了一个用于TCP连接检测的小组件,如果你记不得了,可以通过以下链接去回顾一下: 『参考』.net CF组件编程(1)--基础之后 『参考』.net CF组件编程 ...
- R语言ggplot2可视化、在可视化区域中自定义添加多个大小不同矩形阴影区域、自定义配置大小不同矩形阴影区域的颜色(Adding multiple shadows/rectangles)
R语言ggplot2可视化.在可视化区域中自定义添加多个大小不同矩形阴影区域.自定义配置大小不同矩形阴影区域的颜色(Adding multiple shadows/rectangles) 目录
- matplotlib可视化基本散点图、在图像多个指定区域绘制方框、进行自定义色彩填充(Draw Multiple Rectangles)
matplotlib可视化基本散点图.在图像多个指定区域绘制方框.进行自定义色彩填充(Draw Multiple Rectangles) 目录
- OC对象 vs CF对象
2019独角兽企业重金招聘Python工程师标准>>> OC对象 vs CF对象 在ARC场景下,对象所有权没有转换 使用__bridge关键字即可实现CF对象和OC对象之间的自由转 ...
- CF 990A. Commentary Boxes【数学/模拟】
[链接]:CF [题意]:对于一个数n,每次加一的代价是a,每次减一的代价是b,求被m整除时的最小代价. [分析]:分情况讨论,自己多举几个栗子. [代码]: #include<cstdio&g ...
- SAP QM QE02 修改检验结果,报错 -No characteristics were found–
SAP QM QE02 修改检验结果,报错 -No characteristics were found– 已经执行完事务代码QE01为检验批9000000208的0010工序录入好了检验结果. 试图 ...
最新文章
- etl常用的三种工具介绍_Adobe Photoshop常用修图插件+屏幕模式+内容感知移动工具介绍...
- 【Linux入门到精通系列讲解】内存管理malloc和free函数
- 图像的放大与缩小(2)——双线性插值放大与均值缩小
- java 面试题三十二 mysql查询面试题
- [转]完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法
- java解压服务器文件夹,java获取远程服务器上的文件夹
- 消息队列面试 - 如何解决消息队列的延时以及过期失效问题?
- android paint 线宽_Paint setStrokeWidth方法:设置空心线宽
- c语言禁止优化某段代码,C语言优化小技巧
- go nil json.marshal 完是null_字节跳动踩坑记#3:Go服务灵异panic
- java单线程任务调度_一文详解Spring任务执行和调度(小结)
- SQLite:在Julia中判断一个表是否存在数据库中?
- 物流企业matlab效率,基于DEA原理的物流企业综合效率评价
- python 赚钱 小项目_用Python赚钱的5个方法,教你业余时间月赚几千外快
- html5 3d场景设计,三维场景设计是什么_三维场景设计的介绍
- 骚男的计算机音乐,lol骚男战歌bgm_lol骚男战歌背景音乐汇总_快吧游戏
- 微信朋友圈会在服务器上保留多久,微信朋友圈设置多久可见,暴露了你的为人...
- IReport 使用记录 主报表和子报表数据传递
- sap 用户权限表_sap权限相关后台表
- 【天翼云服务器】新服务器centos环境搭建,按照docker环境,解决相关配置问题。
热门文章
- java前方交会_JAVA:距离前方交会算法GUI实现
- python 拓扑排序_Python 拓扑排序
- smc K9F1208U0M 读写操作 续(s3c2410 nand flash 学习)
- 杂谈《流浪地球》与认知
- 学习手机维修的重要的三点
- 滚珠丝杠与滚珠丝杠副区别
- 车联网,车载ivi(hu)等。
- WordPress 五个最好的免费幻灯片插件slideshow plugins
- 测试php phpinfo,PHP phpinfo() 函数 500 error 错误的终极解决办法
- 三年级能用计算机吗,三年级计算机教学计划