【20160904】NOIP模拟赛T3
来源:互联网 发布:js点击链接下载图片 编辑:程序博客网 时间:2024/05/29 11:33
T3
给出n个矩形左下角和右上角的坐标,选择其中n-1个矩形,使得这n-1个矩形的交的面积最大。
2
题解
预处理数据,然后枚举(复杂度O(N));
#include<iostream>#include<cstring>#include<cstdio>#include<algorithm>#include<cmath>#define inf 0x1f1f1f1f using namespace std;struct jx{ int l,r,u,d;};jx a[100005],f[100005],g[100005];int n;long long ans;int main(){ freopen("area.in","r",stdin); freopen("area.out","w",stdout); scanf("%d",&n); for(int i=1;i<=n;i++){ scanf("%d%d%d%d",&a[i].l,&a[i].d,&a[i].r,&a[i].u); } f[0].l=f[0].d=-inf; f[0].r=f[0].u=inf; g[n+1]=f[0]; for(int i=1;i<=n;i++){ f[i].l=max(f[i-1].l,a[i].l); f[i].d=max(f[i-1].d,a[i].d); f[i].r=min(f[i-1].r,a[i].r); f[i].u=min(f[i-1].u,a[i].u); } for(int i=n;i>=1;i--){ g[i].l=max(g[i+1].l,a[i].l); g[i].d=max(g[i+1].d,a[i].d); g[i].r=min(g[i+1].r,a[i].r); g[i].u=min(g[i+1].u,a[i].u); } ans=0; for(int i=1;i<=n;i++){ jx aa; aa.l=max(g[i+1].l,f[i-1].l); aa.d=max(g[i+1].d,f[i-1].d); aa.r=min(g[i+1].r,f[i-1].r); aa.u=min(g[i+1].u,f[i-1].u); long long mj=0; if(aa.r>aa.l&&aa.u>aa.d){ mj=((long long)(aa.r-aa.l))*((long long)(aa.u-aa.d)); } if(mj>=ans)ans=mj; } cout<<ans; return 0;}
0 0
- 【20160904】NOIP模拟赛T3
- NOIP模拟赛 t3 nan
- noip模拟11.3 T3
- [NOIP模拟]T3:系列维护
- 【NOIP模拟】 (10.24) T3 math
- noip 2017 模拟 D1 T3
- 【NOIP模拟】 (10.31) T3 纸带
- NOIP模拟赛 T3:与众不同(线段树+滑动窗口)
- nodgd 好路线 noip 2015 模拟赛 T3
- 【NOIP 模拟题】[T3] 约会(lca)
- NOIP模拟(10.19)T3 放盒子
- NOIP模拟(10.20)T3 裁剪表格
- NOIP模拟(20171023)T3 拆网线
- NOIP模拟(10.22)T3 树
- NOIP模拟(10.23)T3 拆网线
- NOIP模拟(10.24)T3 Math
- NOIP模拟(20171024)T3 数学
- NOIP模拟(20171026)T3 大逃杀
- poj 3321 Apple Tree
- PHP函数
- <boost -01> boost::filesystem在visual studio 2015的安装/配置方法
- 一致代码段与非一致代码段
- java编程自学记录(day16)
- 【20160904】NOIP模拟赛T3
- eclipse配置tomcat图标在工具栏
- Islands
- 【2016普及组模拟考试】04 搜索 tribe(部落卫队)
- 机器学习概述
- JAVA比较陷阱——易错点(包含自动装箱)
- 安卓源码编译--常见问题集
- 有n个数,两两组成二元组,差最小的有多少对呢?差最大呢?
- Linux内存管理原理