博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
codeforces 1028C Rectangles【思维】
阅读量:4610 次
发布时间:2019-06-09

本文共 1521 字,大约阅读时间需要 5 分钟。

题目:

题意:有n个矩阵,求一个点(保证存在)至少在n-1个点内。

解题思路:因为矩阵与坐标轴平行,所以我们画图可以发现如果存在点满足条件,则这些点中一定有一个是矩阵的顶点。我们可以把所有顶点的横纵坐标分别存下来排序,左下角的最大两个横纵坐标与右上角的最小两个横纵坐标相互结合,一定有一个是答案。如果不明白可以看看1029C,算是这题的一维简化版。

附ac代码:

1 #include 
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 using namespace std;10 typedef long long ll;11 const int maxn = 132674 + 10;12 int n;13 struct nod14 {15 int x;16 int y;17 18 }nua[maxn], nub[maxn];19 int l[maxn], r[maxn], u[maxn], d[maxn];20 void print(int lc, int dc)21 {22 int cnt = 0;23 for(int i = 1; i <= n; ++i)24 {25 if(lc >= nua[i].x && lc <= nub[i].x && dc >= nua[i].y && dc <= nub[i].y)26 {27 ++cnt;28 }29 }30 if(cnt >= n - 1)31 {32 printf("%d %d\n", lc, dc);33 exit(0);34 }35 }36 int main()37 {38 39 scanf("%d", &n);40 for(int i = 1; i <= n; ++i)41 {42 scanf("%d %d %d %d", &l[i], &d[i], &r[i], &u[i]);43 nua[i].x = l[i];44 nua[i].y = d[i];45 nub[i].x = r[i];46 nub[i].y = u[i];47 }48 sort(l + 1, l + 1 + n);49 sort(r + 1, r + 1 + n);50 sort(d + 1, d + 1 + n);51 sort(u + 1, u + 1 + n);52 for(int i = 1; i <= 2; ++i)53 {54 for(int j = n - 1; j <= n; ++j)55 {56 print(l[j], u[i]);57 print(r[i], d[j]);58 }59 for(int j = 1; j <= 2; ++j)60 {61 print(l[i], d[j]);62 }63 }64 for(int i = n - 1; i <= n; ++i)65 {66 for(int j = n - 1; j <= n; ++j)67 {68 print(r[i], u[i]);69 }70 }71 return 0;72 }
View Code

 

转载于:https://www.cnblogs.com/zmin/p/9591873.html

你可能感兴趣的文章
[2018/11/18] Java数据结构(2) 简单排序 冒泡排序 选择排序 插入排序
查看>>
关于WPF程序只运行一个实例的方法
查看>>
图论:点分治
查看>>
mysql
查看>>
C/C++ 知识点---sizeof使用规则及陷阱分析(网摘)
查看>>
前端开发在线小工具
查看>>
Hadoop 使用Combiner提高Map/Reduce程序效率
查看>>
前言 转录组
查看>>
局域网内访问机器时出现“未授予在次计算机上的请求登陆类型”
查看>>
Bogart BogartAutoCode.vb
查看>>
hdu - 2266 How Many Equations Can You Find (简单dfs)
查看>>
UIView属性
查看>>
将博客搬至CSDN
查看>>
远程服务器git搭建
查看>>
牛人们的博客地址
查看>>
Zabbix是什么?
查看>>
Dede推荐文章与热点文章不显示?
查看>>
Linux --Apache服务搭建
查看>>
20145325张梓靖 实验三 "敏捷开发与XP实践"
查看>>
JavaScript面试题
查看>>