【 AIM Tech Round 5 (rated, Div. 1 + Div. 2) C】Rectangles
【链接】 我是链接,点我呀:)
【题意】
给你n个矩形。
让你找出一个点(x,y)
使得这个点在其中至少(n-1)个矩形中。
【题解】
若干个矩形交在一起的话。
它们所有的公共区域也会是一个矩形。
这个矩形的左下角坐标为$(max(x1_i),max(y1_i))$
这个矩形的右上角坐标为$(min(x2_i),min(y2_i))$
题目要求的是在至少n-1个矩形中。
显然如果这个点在n个矩形中的话,也一定就在n-1个矩形中。
所以转化为求n-1个矩形的公共区域中的任意一点(任意输出就好)
我们可以枚举第i个矩形不考虑。只考虑1..i-1和i+1..n这n-1个矩形。
用上面的方法求出它们的公共区域即可。
(用个前缀和O(n)预处理就好
【代码】
#include <bits/stdc++.h>
#define LL long long
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
#define all(x) x.begin(),x.end()
#define pb push_back
#define lson l,mid,rt<<1
#define ri(x) scanf("%d",&x)
#define rl(x) scanf("%lld",&x)
#define rs(x) scanf("%s",x)
#define rson mid+1,r,rt<<1|1
using namespace std;
const double pi = acos(-1);
const int dx[4] = {0,0,1,-1};
const int dy[4] = {1,-1,0,0};
const int N = 2e5;
const int INF = 1e9+7;
struct abc{
int x1,x2;
int y1,y2;
}a[N+10];
int premax[N+10][2],premin[N+10][2],aftmax[N+10][2],aftmin[N+10][2];
int n;
int main(){
#ifdef LOCAL_DEFINE
freopen("rush_in.txt", "r", stdin);
#endif
ri(n);
rep1(i,1,n) ri(a[i].x1),ri(a[i].y1),ri(a[i].x2),ri(a[i].y2);
rep1(i,0,1) premax[0][i] = -INF,premin[0][i] = INF;
rep1(i,0,1) aftmax[n+1][i] = -INF,aftmin[n+1][i] = INF;
rep1(i,1,n){
premax[i][0] = max(premax[i-1][0],a[i].x1);
premax[i][1] = max(premax[i-1][1],a[i].y1);
premin[i][0] = min(premin[i-1][0],a[i].x2);
premin[i][1] = min(premin[i-1][1],a[i].y2);
}
rep2(i,n,1){
aftmax[i][0] = max(aftmax[i+1][0],a[i].x1);
aftmax[i][1] = max(aftmax[i+1][1],a[i].y1);
aftmin[i][0] = min(aftmin[i+1][0],a[i].x2);
aftmin[i][1] = min(aftmin[i+1][1],a[i].y2);
}
rep1(i,1,n){
int x1 = max(premax[i-1][0],aftmax[i+1][0]);
int y1 = max(premax[i-1][1],aftmax[i+1][1]);
int x2 = min(premin[i-1][0],aftmin[i+1][0]);
int y2 = min(premin[i-1][1],aftmin[i+1][1]);
if (x1<=x2 && y1<=y2){
cout<<x1<<' '<<y1<<endl;
return 0;
}
}
return 0;
}
【 AIM Tech Round 5 (rated, Div. 1 + Div. 2) C】Rectangles的更多相关文章
- 【AIM Tech Round 5 (rated, Div. 1 + Div. 2) 总结】【题解往前或往后翻,不在这】
又是爆炸的一场 心态有点小崩.但问题不大.. 看A题,一直担心有多个正方形..小心翼翼地看完之后,毅然地交上去了. [00:08] A[Accpted] 然后开始看B题. 觉得和之前做的某题很像,但翻 ...
- 【AIM Tech Round 5 (rated, Div. 1 + Div. 2) A】 Find Square
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 找到左上角.往下一直走,往右一直走走到B边界就好. 中点的话.直接输出中位数 [代码] #include <bits/stdc ...
- 【AIM Tech Round 5 (rated, Div. 1 + Div. 2) B】Unnatural Conditions
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 让a+b的和为100000000...0这样的形式就好了 这样s(a+b)=1<=m就肯定成立了(m>=1) 然后至于s ...
- AIM Tech Round 5 (rated, Div. 1 + Div. 2) C. Rectangles 【矩阵交集】
题目传传传送门:http://codeforces.com/contest/1028/problem/C C. Rectangles time limit per test 2 seconds mem ...
- 【AIM Tech Round 4 (Div. 1) B】Interactive LowerBound
[链接]http://codeforces.com/contest/843/problem/B [题意] 给你一个数组模拟的单链表,放在一个长度为n的数组里面,然后告诉你表头的位置在哪里; 你可以最多 ...
- 【AIM Tech Round 4 (Div. 2) A】Diversity
[链接]http://codeforces.com/contest/844/problem/A [题意] 大水题 [题解] 看看不同的个数num是不是小于k,小于k,看看len-num够不够补的 [错 ...
- 【AIM Tech Round 4 (Div. 2) B】Rectangles
[链接]http://codeforces.com/contest/844/problem/B [题意] 也是道计数水题,没什么记录意义 [题解] 枚举每个点的位置在,然后往右往下 枚举和它一样颜色的 ...
- 【AIM Tech Round 4 (Div. 2) C】Sorting by Subsequences
[链接]http://codeforces.com/contest/844/problem/C [题意] 水题,没有记录意义 [题解] 排序之后,记录每个数字原来在哪里就好. 可以形成环的. 环的个数 ...
- 【AIM Tech Round 4 (Div. 2) D Prob】
·题目:D. Interactive LowerBound ·英文题,述大意: 有一个长度为n(n<=50000)的单链表,里面的元素是递增的.链表存储在一个数组里面,给出长度n.表 ...
随机推荐
- android 细节之An internal error occurred during: "Launching New_configuration".
今天在导入公司的一个小demo时候发现了一个非常有意思的错误. An internal error occurred during: "Launching New_configuration ...
- 汉澳sinox2014x64server已经能够下载
大家快去下载,用迅雷快速下载 下载地址 ftp://sinox.3322.org/sinox2014x64server.img 已经能够下载 ftp://sinox.3322.org/sinox201 ...
- ntp服务及时间同步问题
今有一小型项目,全然自主弄,原来以为非常easy的NTP服务.我给折腾了2个多小时才整撑头(曾经都是运维搞,没太注意,所以这技术的东西.在简单都须要亲尝啊).这里记录为以后别再浪费时间. 目标环境,5 ...
- convert命令的使用【转】
本文转载自; http://www.charry.org/docs/linux/ImageMagick/ImageMagick.html
- CH Round #46A 磁力块
还是一道好题的 对于一个磁石是否被吸引,有两个关键字:距离和质量.(二维偏序??) 好像是很厉害的分块姿势,先按第一关键字排序,在块中按第二关键字排 进行bfs,对于当前磁石,有1~k-1个块是第一关 ...
- 【Codeforces 258B】 Sort the Array
[题目链接] http://codeforces.com/contest/451/problem/B [算法] 模拟 在序列中找到一段单调递增的子序列,将这段序列反转,然后判断序列是否变得单调递增,即 ...
- openssl https证书
今天摸索了下 HTTPS 的证书生成,以及它在 Nginx 上的部署.由于博客托管在 github 上,没办法部署证书,先记录下,后续有需要方便快捷操作.本文的阐述不一定完善,但是可以让一个初学者了解 ...
- js原生_获取url键值对
思路: 1.先对url进行处理,获取 ?后的字符串 postid=10457794&actiontip=保存修改成功') 2. 字符串通过&标识,不同参数转为数组 ["pos ...
- hdu3926 Hand in Hand 判断同构
因为每个人小朋友只有两只手,所以每个点最多只有2度.图有可能是环.链,以及环和链构成的复杂图. 如何判断两幅图是否相似呢?判断相似是判断两幅图的圈的数量,以及构成圈的点数是否相同.还有判断链的数目和构 ...
- 【Five-Minute Share】“为什么要选择自增型的主键”
我们在开发的时候经常会听到这样的建议:1. 设计数据库表的时候,要为每个表设置一个主键:2. 主键最好是跟业务无关的: 3. 最好是自增的: 于是,很多新入行的程序猿们把这些前辈们的教条拿来就用,每个 ...