链接

[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的更多相关文章

  1. poj-1314 Finding Rectangles

    题目地址: http://poj.org/problem?id=1314 题意: 给出一串的点,有些点可以构成正方形,请按照字符排序输出. 因为这道题的用处很大, 最近接触的cv 中的Rectangl ...

  2. [ACM_暴力][ACM_几何] ZOJ 1426 Counting Rectangles (水平竖直线段组成的矩形个数,暴力)

    Description We are given a figure consisting of only horizontal and vertical line segments. Our goal ...

  3. codeforces 713B B. Searching Rectangles(二分)

    题目链接: B. Searching Rectangles time limit per test 1 second memory limit per test 256 megabytes input ...

  4. White Rectangles[HDU1510]

    White Rectangles Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  5. Java基础之在窗口中绘图——绘制直线和矩形(Sketcher 2 drawing lines and rectangles)

    控制台程序. import javax.swing.JComponent; import java.util.*; import java.awt.*; import java.awt.geom.*; ...

  6. Counting Rectangles

    Counting Rectangles Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 1043 Accepted: 546 De ...

  7. UVA 10574 - Counting Rectangles 计数

    Given n points on the XY plane, count how many regular rectangles are formed. A rectangle is regular ...

  8. Project Euler 85 :Counting rectangles 数长方形

    Counting rectangles By counting carefully it can be seen that a rectangular grid measuring 3 by 2 co ...

  9. HDU 2056 Rectangles

    Rectangles Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  10. Number of Rectangles in a Grid

    Project Euler 85: Investigating the number of rectangles in a rectangular grid Number of Rectangles ...

随机推荐

  1. 实战:阿里巴巴 DevOps 转型后的运维平台建设

    导读:阿里巴巴DevOps转型之后,运维平台是如何建设的?阿里巴巴高级技术专家陈喻结合运维自身的理解,业务场景的分析和业界方法论的一些思考,得出来一些最佳实践分享给大家.   前言   “我是这个应用 ...

  2. Sudoku 个人项目1

    Github项目地址:Github 项目相关要求 随机构造出N个不重复的已解答的数独棋盘(0 < N <= 1000000) 在生成数独矩阵时,左上角的第一个数为:(学号后两位相加)% 9 ...

  3. Activiti工作流与BPMN2.0规范

    本章内容根据BPMN2.0规范的分类划分为以下部分: 1.启动与结束事件(event) 2.顺序流(Sequence Flow) 3.任务(Task) 4.网关(Gateway) 5.子流程(Subp ...

  4. Swift开发实例:苹果Swift编程语言新手教程中文版+FlappyBird,2048游戏源代码

    源代码: 用IOS Swift语言实现的Flappy Bird源代码:http://download.csdn.net/detail/estellise/7449547 用IOS Swift实现的游戏 ...

  5. 【剑指offer】推断二叉树平衡

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/mmc_maodun/article/details/27242575 转载请注明出处:http:// ...

  6. 转://oracle 11G+ASM for Linux手工建库

    环境描述 环境:Oracle Linux 6.5 + ORACLE 11g R2+ASM ORACLE的程序已经安装完毕.但是没有创建任何数据库. 实验内容 安装ORACLE11g数据库,不使用DBC ...

  7. 浅谈JEECG多数据源的使用

    首先,简单的介绍下什么是JEECG.JEECG(J2EECode Generation)是一款基于代码生成器的免费开源的快速开发平台,使用JEECG可以简单快速地开发出企业级的Web应用系统.JEEC ...

  8. 理解 DocumentFragment

    理解 DocumentFragment 含义:创建文档片段,它继承了Node的所有方法,对DOM操作性能非常好.创建文档片段 如下方法: var frag = document.createDocum ...

  9. 【Codeforces 3D】Least Cost Bracket Sequence

    Codeforces 3 D 题意:有一个括号序列,其中一些位置是问号,把第\(i\)个问号改成(需要\(a_i\)的代价,把它改成)需要\(b_i\)的代价. 问使得这个括号序列成立所需要的最小代价 ...

  10. jmeter(四)HTTP请求

    启动jmeter,建立一个测试计划 这里再次说说怎么安装和启动jmeter吧,昨天下午又被人问到怎样安装和使用,我也是醉了:在我看来,百度能解决百分之八十的问题,特别是基础的问题... 安装:去官网下 ...