洛谷 P1578 奶牛浴场 —— 最大子矩形
题目:https://www.luogu.org/problemnew/show/P1578
枚举左边界,向右枚举右边界,同时不断限制上下边界,最后右边界是整个图的边界;
由于没有做左边界是整个图的边界的情况,所以再从右往左做一遍;
还没有做左右边界都是整个图的边界的情况,所以再特殊做一下;
注意题目上说的是障碍点可以在边界上!
而且不是格子图!
代码如下:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int const xn=;
int n;
struct N{int x,y;}p[xn];
int rd()
{
int ret=,f=; char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=; ch=getchar();}
while(ch>=''&&ch<='')ret=(ret<<)+(ret<<)+ch-'',ch=getchar();
return f?ret:-ret;
}
bool cmp(N a,N b){return a.x<b.x;}
bool cmp2(N a,N b){return a.y<b.y;}
int main()
{
int L=rd(),W=rd(); n=rd();
for(int i=;i<=n;i++)p[i].x=rd(),p[i].y=rd();
sort(p+,p+n+,cmp);
int ans=,j;
for(int i=;i<=n;i++)
{
int x=p[i].x,y=p[i].y,l=,r=W;
for(j=i+;j<=n;j++)
{
int nx=p[j].x,ny=p[j].y;
if(nx==x)continue;
ans=max(ans,(nx-x)*(r-l));//
if(ny<y)l=max(l,ny);
else if(ny>y)r=min(r,ny);
else break;
}
if(j==n+)ans=max(ans,(L-x)*(r-l));
}
for(int i=n;i;i--)
{
int x=p[i].x,y=p[i].y,l=,r=W;
for(j=i-;j;j--)
{
int nx=p[j].x,ny=p[j].y;
if(nx==x)continue;
ans=max(ans,(x-nx)*(r-l));//
if(ny<y)l=max(l,ny);
else if(ny>y)r=min(r,ny);
else break;
}
if(j==)ans=max(ans,x*(r-l));
}
sort(p+,p+n+,cmp2);
int pre=;
for(int i=;i<=n;i++)
{
ans=max(ans,L*(p[i].y-pre));
pre=p[i].y;
}
ans=max(ans,L*(W-pre));
printf("%d\n",ans);
return ;
}
洛谷 P1578 奶牛浴场 —— 最大子矩形的更多相关文章
- 洛谷P1578 奶牛浴场
		P1578 奶牛浴场 题目描述 由于John建造了牛场围栏,激起了奶牛的愤怒,奶牛的产奶量急剧减少.为了讨好奶牛,John决定在牛场中建造一个大型浴场.但是John的奶牛有一个奇怪的习惯,每头奶牛都必 ... 
- [WC2002][洛谷P1578]奶牛浴场
		洛谷题解里那个人可真是话多呢. 题目描述 由于John建造了牛场围栏,激起了奶牛的愤怒,奶牛的产奶量急剧减少.为了讨好奶牛,John决定在牛场中建造一个大型浴场.但是John的奶牛有一个奇怪的习惯,每 ... 
- 洛谷 P1578 奶牛浴场
		https://www.luogu.org/problemnew/show/P1578 题解 另外这题有一些小坑,洛谷的题解里面有讲 #pragma GCC optimize("Ofast& ... 
- 洛谷 P1578 奶牛浴场 题解
		题面 1.定义有效子矩形为内部不包含任何障碍点且边界与坐标轴平行的子矩形.如图所示,第一个是有效子矩形(尽管边界上有障碍点),第二个不是有效子矩形(因为内部含有障碍点). 2.极大有效子矩形:一个有效 ... 
- 洛谷P1578 奶牛牧场(悬线法思想)
		题目 悬线法的思想--即扫描线的思想,每个矩阵必定是由两个障碍来构成左右边界或者上下边界. 如果此两个障碍组成了左右边界,枚举这两个障碍中途更新这两个障碍之间的矩阵上下边界,并且更新最大值. 考虑如何 ... 
- P1578 奶牛浴场
		P1578 奶牛浴场 题目描述 由于John建造了牛场围栏,激起了奶牛的愤怒,奶牛的产奶量急剧减少.为了讨好奶牛,John决定在牛场中建造一个大型浴场.但是John的奶牛有一个奇怪的习惯,每头奶牛都必 ... 
- 洛谷2344 奶牛抗议(DP+BIT+离散化)
		洛谷2344 奶牛抗议 本题地址:http://www.luogu.org/problem/show?pid=2344 题目背景 Generic Cow Protests, 2011 Feb 题目描述 ... 
- 洛谷P2402 奶牛隐藏
		洛谷P2402 奶牛隐藏 题目背景 这本是一个非常简单的问题,然而奶牛们由于下雨已经非常混乱,无法完成这一计算,于是这个任务就交给了你.(奶牛混乱的原因看题目描述) 题目描述 在一个农场里有n块田地. ... 
- 洛谷 [P1578] WC2002 奶牛浴场
		本题是一道用极大化思想求最大子矩阵的经典题目.这个题目很出名,可以在百度搜索王知昆国家队dalao的论文,其中说的非常详细. 先枚举极大子矩形的左边界,然后从左到右依次扫描每一个障碍点,并不断修改可行 ... 
随机推荐
- org.xml.sax.SAXParseException: 元素内容必须由格式正确的字符数据或标记组成,的错误问题
			当时在mapper其中的一个语句是case when ISNULL(b.c_truename) || LENGTH(TRIM(b.c_truename)) < 1 then b.c_ch_nam ... 
- php 笔记 汇总 学习
			php命令行:通过命令行进入到当前要被执行的php文件路径,然后输入php环境可执行路径(后面包含php.exe),然后输入要被执行的php文件,比如runData.php即可. php框架:yaf. ... 
- react 起手式
			http://blog.csdn.net/zhouzhiande/article/details/52349344 http://blog.csdn.net/zhouzhiande/article/d ... 
- 实践与理解CMM体系
			我的项目管理之路--5.实践与理解CMM体系 分类: 管理专辑(65) 过程改进(9) 软件工程(52) 版权声明:本文为博主原创文章,未经博主允许不得转载. 一个现代企业我们可以把它比作为自然界 ... 
- 使用java连接AD域,验证账号密码是否正确
			eb项目中有时候客户要求我们使用ad域进行身份确认,不再另外做一套用户管理系统.其实客户就是只要一套账号可以访问所有的OA,CRM等办公系统.这就是第三方验证.一般有AD域,Ldap,Radius,邮 ... 
- HTML小知识点积累
			1.怎样让heigth:100%起效? 有时候我们设置heigth:100%,想让当前控件铺满整个屏幕,可是非常少情况下这个属性能达到我们想要的效果,这是为什么呢? 而依据W3C的规范.百分比 ... 
- 微信小程序  开发环境配置
			1.注册小程序 (1)微信公众平台:https://mp.weixin.qq.com/(2)立即注册 (3)流程 (4)小程序注册 (5)填写相关信息,并去邮箱激活.这样小程序的账号就注册完成了. 2 ... 
- Ubuntu16.04安装openjdk-7-jdk
			ubuntu14.04 升级16.04后会默认将jdk1.7删除,因此需要重新安装. Ubuntu16.04 安装Oracle JDK 和 Open jdk 默认JDK 安装比较轻松,但根据项目调整 ... 
- Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.2
			3.Spark MLlib Deep Learning Convolution Neural Network(深度学习-卷积神经网络)3.2 http://blog.csdn.net/sunbow0 ... 
- js中对arry数组的各种操作小结  瀑布流AJAX无刷新加载数据列表--当页面滚动到Id时再继续加载数据  web前端url传递值 js加密解密  HTML中让表单input等文本框为只读不可编辑的方法  js监听用户的键盘敲击事件,兼容各大主流浏览器  HTML特殊字符
			js中对arry数组的各种操作小结 最近工作比较轻松,于是就花时间从头到尾的对js进行了详细的学习和复习,在看书的过程中,发现自己平时在做项目的过程中有很多地方想得不过全面,写的不够合理,所以说啊 ... 
