C. Rectangles
链接
[http://codeforces.com/group/1EzrFFyOc0/contest/1028/problem/C]
题意
给你n个矩形的左下角和右上角坐标,问你至少包含在n-1个矩形的点的坐标,有多个随便输出一个
分析
分别从前到后和从后到前枚举矩形重叠的部分
分别有b[i]和c[i]保存从第一个到第i个的矩形重叠的小矩形和从后面倒着来第n个到第i个的矩形重叠的小矩形
任意两个矩形重叠的小矩形左下和右上坐标计算为
(max(a.xl,b.xl),max(a.yl,b.yl)) 就是交矩形的左下角坐标。
(min(a.xr,b.xr),min(a.yr,b.yr)) 就是交矩形的右上角坐标。
然后枚举去掉n个中的一个是否能构成矩形如果可以直接输出左下角坐标,否则继续枚举
代码
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int maxn=150000;
ll inf=1e9+10;
struct node{
ll xl,yl,xr,yr;
}a[maxn],b[maxn],c[maxn],wo;
bool jud(node g){
if(g.xl>g.xr||g.yl>g.yr) return 0;
return 1;
}
int main(){
int n,i;
ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
//freopen("in.txt","r",stdin);
cin>>n;
for(i=1;i<=n;i++)
cin>>a[i].xl>>a[i].yl>>a[i].xr>>a[i].yr;
b[0].xl=b[0].yl=-inf;
b[0].xr=b[0].yr=inf;
for(i=1;i<=n;i++){
b[i].xl=max(a[i].xl,b[i-1].xl);
b[i].yl=max(a[i].yl,b[i-1].yl);
b[i].xr=min(a[i].xr,b[i-1].xr);
b[i].yr=min(a[i].yr,b[i-1].yr);
}
c[n+1].xl=c[n+1].yl=-inf;
c[n+1].xr=c[n+1].yr=inf;
for(i=n;i>=1;i--){
c[i].xl=max(a[i].xl,c[i+1].xl);
c[i].yl=max(a[i].yl,c[i+1].yl);
c[i].xr=min(a[i].xr,c[i+1].xr);
c[i].yr=min(a[i].yr,c[i+1].yr);
}
if(jud(b[n-1])){
cout<<b[n-1].xl<<' '<<b[n-1].yl<<endl;
}
else if(jud(c[2])){
cout<<c[2].xl<<' '<<c[2].yl<<endl;
}
else{
for(i=2;i<n;i++){
wo.xl=max(b[i-1].xl,c[i+1].xl);
wo.yl=max(b[i-1].yl,c[i+1].yl);
wo.xr=min(b[i-1].xr,c[i+1].xr);
wo.yr=min(b[i-1].yr,c[i+1].yr);
if(jud(wo))
break;
}
cout<<wo.xl<<' '<<wo.yl<<endl;
}
return 0;
}
C. Rectangles的更多相关文章
- poj-1314 Finding Rectangles
题目地址: http://poj.org/problem?id=1314 题意: 给出一串的点,有些点可以构成正方形,请按照字符排序输出. 因为这道题的用处很大, 最近接触的cv 中的Rectangl ...
- [ACM_暴力][ACM_几何] ZOJ 1426 Counting Rectangles (水平竖直线段组成的矩形个数,暴力)
Description We are given a figure consisting of only horizontal and vertical line segments. Our goal ...
- codeforces 713B B. Searching Rectangles(二分)
题目链接: B. Searching Rectangles time limit per test 1 second memory limit per test 256 megabytes input ...
- White Rectangles[HDU1510]
White Rectangles Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- Java基础之在窗口中绘图——绘制直线和矩形(Sketcher 2 drawing lines and rectangles)
控制台程序. import javax.swing.JComponent; import java.util.*; import java.awt.*; import java.awt.geom.*; ...
- Counting Rectangles
Counting Rectangles Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 1043 Accepted: 546 De ...
- UVA 10574 - Counting Rectangles 计数
Given n points on the XY plane, count how many regular rectangles are formed. A rectangle is regular ...
- Project Euler 85 :Counting rectangles 数长方形
Counting rectangles By counting carefully it can be seen that a rectangular grid measuring 3 by 2 co ...
- HDU 2056 Rectangles
Rectangles Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- Number of Rectangles in a Grid
Project Euler 85: Investigating the number of rectangles in a rectangular grid Number of Rectangles ...
随机推荐
- 【PAT】B1066 图像过滤(15 分)
注意输出是占三位,其他的挺水 #include<stdio.h> #include<algorithm> using namespace std; int main(){ in ...
- logstash之input、codec学习
Logstash最强大的功能在于丰富的过滤器插件.此过滤器提供的并不单单是过滤的功能,还可以对进入过滤器的原始数据进行复杂的逻辑处理.甚至添加独特的事件到后续流程中. 1.logstash基本语法组成 ...
- <20190102>收录些比较低级错误导致的主板故障现象
今天收录俩个比较低级的错误. 故障现象: 水冷排风扇高速运转, 并无法调控. 现在CPU散热的水冷排都设计了三条线, 温控4Pin , 水泵线 3Pin , 接在机箱上USB口取电的灯线或者 ...
- el-table复选框分页记忆
el-table 结合 el-pagination 实现分页后默认是没有复选框记忆功能的,对于这样的需求,无奈又只能硬着头皮上,试了网上的一些方法,没奏效,便自己上了. 简单的用法如下: <te ...
- JS中=>,>>>是什么意思
最近经常看到 JS中=>,符号,于是查了一下别人的博客 =>是es6语法中的arrow function 举例:(x) => x + 6 相当于 function(x){ ret ...
- 从头学Android之RelativeLayout相对布局
http://blog.csdn.net/worker90/article/details/6893246 相对布局对于做Web开发来说再熟悉不过了,我们在用CSS+DIV的时候经常会用到这些类似的相 ...
- ;,&,&&,shell,区别
command1&command2&command3 三个命令同时执行 command1;command2;command3 不管前面命令执行成功没有,后面的命令继续执 ...
- webpack4+node合并资源请求, 实现combo功能(二十三)
本文学习使用nodejs实现css或js资源文件的合并请求功能,我们都知道在一个复杂的项目当中,可能会使用到很多第三方插件,虽然目前使用vue开发系统或者h5页面,vue组件够用,但是有的项目中会使用 ...
- 在NodeJS中操作文件常见的API
阅读目录 一:如何读整个文件内容? 二:如何写入整个文件内容? 三:如何在文件中的指定位置处读入内容? 四:如何在文件中的指定位置处写入内容? 五:如何创建与读取目录? 六:如何查看与修改文件或目录的 ...
- Saltstack学习之二:target与模块方法的运行
对象的管理 saltstack系统中我们的管理对象叫做target,在master上我们可以采用不同的target去管理不同的minion,这些target都是通过去管理和匹配minion的id来做的 ...