luogu P1578 奶牛浴场
很好的一道题
王知昆爷爷的论文(讲的特别清楚) https://wenku.baidu.com/view/bc8311f69e314332396893f7.html
先贴上AC代码
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
template<class T>void read(T &x){
int f=;x=;char ch=getchar();
while(ch<''||ch>'') {f|=(ch=='-');ch=getchar();}
while(ch>=''&&ch<=''){x=(x<<)+(x<<)+(ch^);ch=getchar();}
x=f?-x:x;
} const int N=;
int ans,yx,yn,n,l,w,lst;
bool qwq[];
struct yhhh{
int x,y;
}a[N]; inline bool cmp(yhhh A,yhhh B){
return A.x<B.x;
} int main(){
read(l),read(w),read(n);
for(int i=;i<=n;++i)
read(a[i].x),read(a[i].y),qwq[a[i].y]=;
for(int i=;i<=w;++i)
if(qwq[i]){
ans=max(ans,w*(i-lst));
lst=i;
}
ans=max(ans,w*(w-lst));
a[++n].x=,a[n].y=;
a[++n].x=l,a[n].y=;
a[++n].x=,a[n].y=w;
a[++n].x=l,a[n].y=w;
sort(a+,a+n+,cmp);
for(int i=;i<=n;++i){
yn=,yx=w;
for(int j=i+;j<=n;++j){
if(yx<=yn) break;
if(a[j].y>yx||a[j].y<yn) continue;
ans=max(ans,(a[j].x-a[i].x)*(yx-yn));
if(a[j].y>=a[i].y) yx=min(yx,a[j].y);
if(a[j].y<=a[i].y) yn=max(yn,a[j].y);
}
ans=max(ans,(yx-yn)*(l-a[i].x));
}
for(int i=n;i>=;--i){
yn=,yx=w;
for(int j=i-;j>=;--j){
if(yx<=yn) break;
if(a[j].y>yx||a[j].y<yn) continue;
ans=max(ans,(a[i].x-a[j].x)*(yx-yn));
if(a[j].y>=a[i].y) yx=min(yx,a[j].y);
if(a[j].y<=a[i].y) yn=max(yn,a[j].y);
}
}
printf("%d\n",ans);
return ;
}
case1:93ps
数据:
IN 6 4 4 1 2 4 1 4 3 2 1
OUT 10
没有考虑如下边界情况
ans=max(ans,(a[j].x-a[i].x)*(yx-yn));
case2:84ps
没有考虑如下情况
case3:56ps
没有考虑上下边界
另:几组hack数据
IN
6 4
4
1 2
4 1
4 3
2 1
OUT
10
IN
10 10
3
3 0
8 2
3 9
OUT
72
IN
4 7
5
0 6
0 0
3 2
1 0
0 3
OUT
21
IN
10 10
2
8 1
3 9
OUT
80
luogu P1578 奶牛浴场的更多相关文章
- P1578 奶牛浴场
P1578 奶牛浴场 题目描述 由于John建造了牛场围栏,激起了奶牛的愤怒,奶牛的产奶量急剧减少.为了讨好奶牛,John决定在牛场中建造一个大型浴场.但是John的奶牛有一个奇怪的习惯,每头奶牛都必 ...
- 洛谷P1578 奶牛浴场
P1578 奶牛浴场 题目描述 由于John建造了牛场围栏,激起了奶牛的愤怒,奶牛的产奶量急剧减少.为了讨好奶牛,John决定在牛场中建造一个大型浴场.但是John的奶牛有一个奇怪的习惯,每头奶牛都必 ...
- 【Luogu】P1578奶牛浴场(DP,枚举)
题目链接 枚举极大子矩形.详情请见本题题解:I_AM_HelloWord 代码如下 #include<cstdio> #include<cctype> #include< ...
- [WC2002][洛谷P1578]奶牛浴场
洛谷题解里那个人可真是话多呢. 题目描述 由于John建造了牛场围栏,激起了奶牛的愤怒,奶牛的产奶量急剧减少.为了讨好奶牛,John决定在牛场中建造一个大型浴场.但是John的奶牛有一个奇怪的习惯,每 ...
- 洛谷 P1578 奶牛浴场
https://www.luogu.org/problemnew/show/P1578 题解 另外这题有一些小坑,洛谷的题解里面有讲 #pragma GCC optimize("Ofast& ...
- 洛谷 P1578 奶牛浴场 —— 最大子矩形
题目:https://www.luogu.org/problemnew/show/P1578 枚举左边界,向右枚举右边界,同时不断限制上下边界,最后右边界是整个图的边界: 由于没有做左边界是整个图的边 ...
- P1578 奶牛浴场 有障碍点的最大子矩形
这题咕咕了很久终于写了\(QwQ\) 思路:扫? 提交:2次 错因:数据差评,第一次把矩形的长宽搞反了竟然只有一个点没有\(A\). 题解: 显然能成为答案的矩形的边界一定有障碍点或者与大矩形边界重合 ...
- 洛谷 P1578 奶牛浴场 题解
题面 1.定义有效子矩形为内部不包含任何障碍点且边界与坐标轴平行的子矩形.如图所示,第一个是有效子矩形(尽管边界上有障碍点),第二个不是有效子矩形(因为内部含有障碍点). 2.极大有效子矩形:一个有效 ...
- luogu P2345 奶牛集会
二次联通门 : luogu P2345 奶牛集会 /* luogu P2345 奶牛集会 权值线段树 以坐标为下标, 坐标为值建立线段树 对奶牛按听力由小到大排序 对于要查的牛 每次第i次放入奶牛起作 ...
随机推荐
- IO操作、PIL使用、Django的admin操作
操作内存的流-StringIO | BytesIO from io import StringIO, BytesIO #创建操作字符串的内存流 sf = StringsIO() #往内存中写 sf.w ...
- Lesnoe Ozero 2016. BSUIR Open 2016 Finals
A. Street magic 数位DP,设$f[i][j][k]$表示从低到高考虑$x$的后$i$位,$x$和$m$大小关系为$j$,和$n$大小关系为$k$的方案数. #include<cs ...
- defer 内追踪变量变化
遇到一个需求,需要追踪变量的最终情况.defer比较合适,但是写了变量和指针都无效,于是试了试: 变量,变量地址,指针的使用情况 func TestDefer(t *testing.T) { a := ...
- Laravel安装redis扩展
Laravel安装redis扩展 1.使用命令行,执行(当然要先安装composer) composer require predis/predis 2.执行完就安装好了,redis相关配置可以到.e ...
- angular.isNumber()
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 利用PIL和Selenium实现页面元素截图
预备 照张相片 selenium.webdriver可以实现对显示页面的截图: from selenium import webdriver dr = webdriver.Firefox() dr.g ...
- JBPM工作流(八)——流程实例(PI)Process Instance
/** * 流程实例 * * 启动流程实例 * * 完成任务 * * 查询 * * 查询流程实例 * * 查询任务 * * 查询正在 ...
- Winform 关闭按钮
问题:我希望树形导航目录窗体在打开一条记录后自动隐藏,然后再次点击主页面打开按钮的时候在自动显示,这样就能保证树形目录仍旧显示隐藏前的展开状态.这里遇到一个问题,就是点击窗体右上角的关闭按钮时,默认情 ...
- Math工具类
public static void main(String[] args) { // 工具类,所有方法都以静态方法提供,没有实例存在的意义 // 不提供任何实例的方法,代表当前类属于无状态的. // ...
- mysql 外键约束及表关联
一.MYSQL中的约束 1.主键:primary key 唯一非空的特性并且可以优化查询速度 2.外键:foreign key 外键的作用保证2个或2个以上的数据表的数据一致性和完整性 3.唯一:un ...