(这道题太简单啦...虽说我锤了一上午都没过...我能说这道题和\(CF1029C\)算是同一道题吗...)

按照时间顺序来说...\(CF1029\)在\(CF1028\)前面(而且\(CF1029\)还是\(Div3\)),前后没差多长时间就惊现高相似度题目(所以CF是有多迫切想让大家上分)

CF1029C传送门

两道题的唯一差别就是一个是一维,一个是二维(我是不是应该猜一下\(CF1036C\)会出一个三维的),都是范围覆盖,和\(CF1029C\)一样,只需要确定最严格的边界限制,题目要求输出任意一个在至少\(n-1\)个矩形内的点,也即可以删去一个矩形,输出剩下\(n-1\)个矩形的交集内的任意点(在此直接选用交集左下角的点)

根据题目条件,一定存在一些满足条件的点,所以删去的矩形应该是与其他\(n-1\)个矩形的交集没有公共部分的矩形,所以和\(CF1029C\)中的处理方式相似,在造成最严格限制的至多四个矩形中枚举删除即可,若删除后剩下的\(n-1\)个矩形交集不为空即可输出答案(如果\(n\)个矩形的交集不为空可以不删除)

下面放代码\(\downarrow\downarrow\downarrow\)

#include<cstdio>//CF1028C
#include<iostream>
#include<cstring>
#include<string>
#include<cmath>
#include<algorithm>
#include<cstdlib>
#include<queue> using namespace std; int n; struct lborder{
int x,id;
bool operator<(const lborder&rhs)const{
return x<rhs.x;
}
}; struct rborder{
int x,id;
bool operator<(const rborder&rhs)const{
return x>rhs.x;
}
}; lborder lbx,lby;rborder rbx,rby; priority_queue<lborder>ql[2];
priority_queue<rborder>qr[2]; int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d%d%d%d",&lbx.x,&lby.x,&rbx.x,&rby.x);
lbx.id=rbx.id=lby.id=rby.id=i;
ql[0].push(lbx);
qr[0].push(rbx);
ql[1].push(lby);
qr[1].push(rby);
}
int id[2][4],x[2][4];
id[0][0]=ql[0].top().id;id[0][1]=ql[1].top().id;
id[0][2]=qr[0].top().id;id[0][3]=qr[1].top().id;
x[0][0]=ql[0].top().x;x[0][1]=ql[1].top().x;
x[0][2]=qr[0].top().x;x[0][3]=qr[1].top().x;
ql[0].pop();qr[0].pop();ql[1].pop();qr[1].pop();
id[1][0]=ql[0].top().id;id[1][1]=ql[1].top().id;
id[1][2]=qr[0].top().id;id[1][3]=qr[1].top().id;
x[1][0]=ql[0].top().x;x[1][1]=ql[1].top().x;
x[1][2]=qr[0].top().x;x[1][3]=qr[1].top().x;
int vis[4]={0,0,0,0},bor[4];
if(x[0][0]<=x[0][2]&&x[0][1]<=x[0][3]){
printf("%d %d\n",x[0][0],x[0][1]);
return 0;
}
for(int i=0;i<4;i++){
if(vis[i]){
continue;
}
vis[i]=1;
for(int j=0;j<4;j++){
if(j==i){
bor[j]=x[1][j];
}
else{
bor[j]=x[0][j];
}
}
for(int j=i+1;j<4;j++){
if(id[0][j]==id[0][i]){
bor[j]=x[1][j];
vis[j]=1;
}
}
if(bor[0]>bor[2]||bor[1]>bor[3]){
continue;
}
else{
printf("%d %d\n",bor[0],bor[1]);
return 0;
}
}
return 0;
}

Codeforces | CF1028C 【Rectangles】的更多相关文章

  1. CodeForces 382C【模拟】

    活生生打成了大模拟... #include <bits/stdc++.h> using namespace std; typedef long long LL; typedef unsig ...

  2. Codeforces 479【E】div3

    题目链接:http://codeforces.com/problemset/problem/977/E 题意:就是给你相连边,让你求图内有几个环. 题解:我图论很差,一般都不太会做图论的题.QAQ看官 ...

  3. Codeforces 479【F】div3

    题目链接:http://codeforces.com/problemset/problem/977/F 题意:给你一串数字序列,让你求最长上升子序列,但是这个子序列呢,它的数字得逐渐连续挨着. 题解: ...

  4. Codeforces 479【D】div3

    题目链接:http://codeforces.com/problemset/problem/977/D 题意:给你一个数字序列,定了一个游戏规则.你可以对当前数字进行两个操作 1./ 3  如果这个数 ...

  5. Codeforces 479【C】div3

    题目链接:http://codeforces.com/problemset/problem/977/C 题意:给你n个数字,输出任意一个数字,这个数字刚好大于等于,序列里面k个数字. 题解:排个序,第 ...

  6. Codeforces 479【B】div3

    题目链接: http://codeforces.com/problemset/problem/977/B 题意:字符串,找固定长度为2的重复子串出现次数最多的. 题解:我暴力做的.暴力出奇迹. #in ...

  7. Codeforces 479【A】div3试个水

    题目链接:http://codeforces.com/problemset/problem/977/A 题意:这个题,题目就是让你根据他的规律玩嘛.末尾是0就除10,不是就-1. 题解:题解即题意. ...

  8. Codeforces | CF1033D 【Divisors】

    题目大意:给定\(n(1\leq n\leq500)\)个数\(a_1,a_2\cdots,a_n(1\leq a_i\leq2\cdot10^{18})\),每个数有\(3\sim5\)个因数,求\ ...

  9. Codeforces | CF1010C 【Border】

    这道题大致题意是给定\(n\)个十进制整数和一个进制数\(k\),可以用无数多个给定的十进制整数,问这些十进制整数的和在模k意义下有多少种不同的结果(\(k\)进制下整数的最后一位就是这个数模\(k\ ...

随机推荐

  1. 数据处理 array json 格式 转换成 数组形式

    处理这种数据应该使用的方式是 this.cities= res.data.data.cities.sort((a,b)=>{ //排序 进行字母排序 return a.pinyin[0].cha ...

  2. js判断数组是否包含某个字符串变量的实例

    最近碰到一个这样的现象,后台返回的数据中,数组里面有一些有变量值,有一些没有变量值. 举个例子,比如后台返回的例子是这样的: var arr=[ { "status":" ...

  3. Codeforces 1154E Two Teams

    题目链接:http://codeforces.com/problemset/problem/1154/E 题目大意: 有n个队员,编号1~n,每个人的能力各自对应1~n中的一个数,每个人的能力都不相同 ...

  4. java学习之—链表(2)

    /** * 双端链表操作 * Create by Administrator * 2018/6/14 0014 * 下午 2:05 **/ class Link1 { public long dDat ...

  5. django restframework PrimaryKeyRelatedField筛选的困惑

    一.在开发某运动app时,遇见以下情况 1.部分表内容如下: class Sports(models.Model): ''' 运动表 ''' school = models.ForeignKey(Sc ...

  6. mybatis逆向工程,实现join多表查询,避免多表相同字段名的陷阱

    ​ mybatis逆向工程,实现join多表查询,避免多表相同字段名的陷阱 ​ 前言:使用 mybatis generator 生成表格对应的pojo.dao.mapper,以及对应的example的 ...

  7. SpringBoot之修改单个文件后立刻生效

    问题: 在使用SpringBoot进行开发时,如果修改了某个文件比如前端页面html,不能立刻起效. 解决: 在idea中打开修改后的文件,使用快捷键Ctrl+Shift+F9 进行重新编译,然后刷新 ...

  8. c#处理json数据最好的方式,没有之一。

    c#处理json数据最好的方式,没有之一. 引用Json.Net(需要.NET 4.5及以上版本) using Newtonsoft.Json.Linq; 使用非常简单 JObject result ...

  9. murongxixi的凸优化笔记

    http://www.cnblogs.com/murongxixi/p/3598645.html 在前两节里已经涉及到集合的相对内部与闭包的概念,这一节我们深入研究它们的性质和计算,之后介绍凸函数的连 ...

  10. Newton方法

    Newton方法主要解决无等式约束和等式约束的最优化方法. 1.函数进行二阶泰勒展开近似 Taylor近似函数求导等于0进而得到Newton步径.(搜索方向) 2.Newton减量(停止条件) 当1/ ...