CodeForces 1216C(假的计算几何+扫描线)
•题意
给你三个矩形,依次编号为 1,2,3;
判断 矩形1 是否被 矩形2 和 矩形3 完全覆盖;
如果没有完全覆盖,输出 "YES",反之,输出 "NO";
•题解
我是用扫描线做的;
首先,定义如下数据结构:
struct Data
{
int x;
int y1,y2;
int f;
int id;
bool operator < (const Data& obj)const
{
return x < obj.x;
}
}line[],white[];先扫描竖直边;
将这 3 个矩形的左右边分别存入上述数据结构中;
并保存 矩形1 的左右边;
int num=;
for(int i=;i <= ;++i)
{
int x1,y1;
int x2,y2;
scanf("%d%d%d%d",&x1,&y1,&x2,&y2); if(i == )
{
white[]={x1,y1,y2,,i};///f=1表示该边为当前矩形的左边,f=-1表示该边为当前矩形的右边
white[]={x2,y1,y2,-,i};///保存矩阵1的两个竖直边
}
line[++num]={x1,y1,y2,,i};///保存矩阵的竖直边
line[++num]={x2,y1,y2,-,i};
}保存好边的信息后,按照 x 升序排列;
接下来就是判断 矩形1 的竖直边是否被 矩形2,3 完全覆盖;
但是,仅仅判断竖直边是否被完全覆盖是不够的,还需要扫描水平边;
原因的话,可以模拟一下如下样例:
这样的话,就得需要保存矩形的上下边,并再次扫描一遍;
只有当 矩形1 的竖直边和水平边都分别被 矩形2,3 完全覆盖时,才能说明 矩形1 被 矩形2,3 完全覆盖;
•Code
•Wa过的样例
此样例很明确的说明了 Code 中第 49~50 行的判断语句的放置位置以及如何确定判断条件;
还有一个就是上述题解中的样例,明确的说明了为什么要扫描两次;
CodeForces 1216C(假的计算几何+扫描线)的更多相关文章
- BZOJ 1845: [Cqoi2005] 三角形面积并 [计算几何 扫描线]
1845: [Cqoi2005] 三角形面积并 Time Limit: 3 Sec Memory Limit: 64 MBSubmit: 1151 Solved: 313[Submit][Stat ...
- Code Chef IMPO(计算几何+扫描线+积分)
题面 传送门 前置芝士 扫描线,积分求面积 题解 我怎么老是忘了积分可以求面积-- 首先,这两个投影的最小的\(x\)坐标和最大的\(x\)坐标必须相等,否则肯定无解 我们考虑一种方法,枚举\(x\) ...
- Five Dimensional Points CodeForces - 851C (计算几何+暴力)
C. Five Dimensional Points time limit per test 2 seconds memory limit per test 256 megabytes input ...
- HDU 4116 Fruit Ninja ( 计算几何 + 扫描线 )
给你最多1000个圆,问画一条直线最多能与几个圆相交,相切也算. 显然临界条件是这条线是某两圆的公切线,最容易想到的就是每两两圆求出所有公切线,暴力判断一下. 可惜圆有1000个,时间复杂度太高. 网 ...
- Codeforces 350D(计算几何)
要点 用A.B.C一般式确定每条直线 将合法的圆心中点存到每条直线所属的vector中 枚举所有线段,二分后\(O(1)\)得到其中存在多少答案,累加 #include <cstdio> ...
- Codeforces 703C(计算几何)
C. Chris and Road time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...
- Codeforces 618C(计算几何)
C. Constellation time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...
- Codeforces 559A(计算几何)
A. Gerald's Hexagon time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- 牛客多校第九场 J Symmetrical Painting 计算几何/扫描线
题意: 平面上有几个宽度相同的矩形区域被涂黑了,让你找到一条横线横截若干个矩形,把这些黑色部分抠下来一部分使得它们以这条横线为对称轴,求能抠下来的最大面积. 题解: 在随着对称轴上移的过程中,必然有一 ...
随机推荐
- php_imagick是怎么实现复古效果的呢?
php_imagick程序示例 1.创建一个缩略图并显示出来 <?phpheader('Content-type: image/jpeg');$image = new Imagick('imag ...
- JavaScript--预解析在IE存在的问题
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 【python练手】获取城市天气质量
#!/usr/bin/python # -*- coding: utf-8 -*- # get city pm2.5 and ranking # python2.7 import sys import ...
- SQLServer → 09:索引
一.索引概念 用途 我们对数据查询及处理速度已成为衡量应用系统成败的标准,而采用索引来加快数据处理速度通常是最普遍采用的优化方法. 概念 索引是一个单独的,存储在磁盘上的数据结构,它们包含则对数据表里 ...
- 关于serialize() FormData serializeArray()表单序列化
serialize() FormData serializeArray()都是序列化表单,实现表单的异步提交 但是serialize()和serializeArray()都是只能序列化表单中的数据 ...
- 【JZOJ4868】【NOIP2016提高A组集训第9场11.7】Simple
题目描述 数据范围 解法 在暴力枚举的基础上,当n的系数在[0,m/gcd(n,m))时,得到的c是不重复不遗漏的. 设n的系数为x,m的系数为y. 不重复不遗漏性 设x=m/gcd(n,m)+i,那 ...
- 【uml】之类图中的关系 标签: uml图形类 2014-11-29 09:02 1198人阅读 评论(23)
uml早就画完了图,但是自己迟迟没有总结,因为总觉的自己把握的不到位,虽然现在也还是不到位,废话少说,上篇博客总结了用例图中的几种关系,这篇就讨论一下类图中的几种关系. 在uml的所有图中,就我目前的 ...
- textarea 转HTML
Text2Html(str) { if (str == null) { return ""; } else if (str.length == 0) { return " ...
- 从Kubernetes 1.14 发布,看技术社区演进方向
Kubernetes 1.14 正式发布已经过去了一段时间,相信你已经从不同渠道看过了各种版本的解读. 不过,相比于代码 Release,马上就要迎来5周岁生日的Kubernetes 项目接下来如何演 ...
- Nacos 发布 1.0.0 GA 版本,可大规模投入到生产环境
经过 3 个 RC 版本的社区体验之后,Nacos 正式发布 1.0.0 GA 版本,在架构.功能和 API 设计上进行了全方位的重构和升级. 1.0.0 版本的发布标志着 Nacos 已经可以大规模 ...