传送门

•题意

先给一个白矩阵,再两个黑矩阵

如果两个黑矩阵能把白矩阵包含,则输出NO

否则输出YES

•思路

计算几何题还是思维题呢?

想起了上初中高中做几何求面积的题

这个就类似于那样

包含的话分两种情况讨论,其他的不包含

①白矩形在一个黑矩形内部

  这种情况直接判断边界就可以

②白矩形在两个黑矩形组合的图形内部

  • 首先这个情况的前提是两个黑矩形必须能连接起来
  • 白矩形和两个黑矩形分别会有重合,重合的地方可能会在此重合,

  例如 白矩形(1 1 4 2)   黑1矩形(1 0 3 4)  黑2矩形(2 0 5 3)

    

被黑1黑2矩阵联合包含,与黑1相交面积是粉色区域,与黑2相交面积是绿色区域

但是粉绿色区域的多算的,白矩阵面积=粉色面积+绿色面积-粉绿面积

•代码

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 #define ll long long
 4 struct node
 5 {
 6     ll xl,yl,x2,y2;
 7 }a[4],p;
 8
 9 bool CH(node x,node y )//重合
10 {
11     if(x.xl>=y.xl&&x.x2<=y.x2&&x.yl>=y.yl&&x.y2<=y.y2)
12         return true;
13     return false;
14 }
15 ll XJ(node a,node b)//相交
16 {
17     ll cx1=max(a.xl,b.xl);
18     ll cy1=max(a.yl,b.yl);
19     ll cx2=min(a.x2,b.x2);
20     ll cy2=min(a.y2,b.y2);
21     if(cx1>cx2||cy1>cy2)//不相交
22
23     p=node{cx1,cy1,cx2,cy2};//相交矩形
24     return (cx2-cx1)*(cy2-cy1);//相交面积
25 }
26
27 ///包括NO 不包括YES
28 int main()
29 {
30     for(ll i=1;i<=3;i++)
31         cin>>a[i].xl>>a[i].yl>>a[i].x2>>a[i].y2;
32
33     if(CH(a[1],a[2])||CH(a[1],a[3]))///重合在内部
34     {
35         puts("NO");
36         return 0;
37     }
38
39     if(XJ(a[2],a[3])<0) ///2 3不相交
40     {
41         puts("YES");
42         return 0;
43     }
44
45     if(XJ(a[2],a[3])>=0) ///2 3相交
46     {
47         ll s1=XJ(a[1],a[2]);
48         node p1=p;
49         ll s2=XJ(a[1],a[3]);
50         node p2=p;
51         ll s=(a[1].y2-a[1].yl)*(a[1].x2-a[1].xl);
52         s+=max(1ll*0,XJ(p1,p2));///重合处会多算
53
54         if(s1+s2==s)
55         {
56             puts("NO");
57             return 0;
58         }
59         else
60         {
61             puts("YES");
62             return 0;
63         }
64     }
65 }
66
67 /**
68 1 1 4 2
69 1 0 3 4
70 2 0 5 3
71 */

View Code

转载于:https://www.cnblogs.com/MMMinoz/p/11566721.html

Codeforces Round #587 C. White Sheet(思维+计算几何)相关推荐

  1. Codeforces Round #587 (Div. 3) C. White Sheet 思维

    传送门 文章目录 题意: 思路: 题意: 给你一个白色的矩形和俩个黑色的矩形,问白色被黑色覆盖后还能不能看到. 思路: 经典被简单题卡. 一开始写了个自我感觉很对的做法,结果wa41wa41wa41, ...

  2. Codeforces Round #459 (Div. 2) C 思维,贪心 D 记忆化dp

    Codeforces Round #459 (Div. 2) C. The Monster 题意:定义正确的括号串,是能够全部匹配的左右括号串. 给出一个字符串,有 (.). ? 三种字符, ? 可以 ...

  3. Codeforces Round #587 (Div. 3)

    题目链接:https://codeforces.com/contest/1216 A: 题意:给出一个仅有a,b组成的字符串,可执行操作把a换成b,b换成a,问最小操作次数,使得任意前偶数里a,b的数 ...

  4. Codeforces Round #533 (Div. 2) C.思维dp D. 多源BFS

    题目链接:https://codeforces.com/contest/1105 C. Ayoub and Lost Array 题目大意:一个长度为n的数组,数组的元素都在[L,R]之间,并且数组全 ...

  5. Codeforces Round #143 (Div. 2) (ABCD 思维场)

    题目连链接:http://codeforces.com/contest/231 A. Team time limit per test:2 seconds memory limit per test: ...

  6. Educational Codeforces Round 98 -B - Toy Blocks (思维)

    题目链接 题目大意: n个盒子,每个盒子里有a[i]个球, 对于任意一个盒子,可以把其中的球随意分配到其他(n-1)个盒子当中,使得n-1个盒子中的球数目相等,求 向n个盒子中最少添加多少个球才能实现 ...

  7. Codeforces Round #730 (Div. 2) D2. RPD and Rap Sheet (Hard Version) 交互 + k进制的转换

    传送门 文章目录 题意: 思路: 题意: 定义a⊕kba\oplus_k ba⊕k​b为a,ba,ba,b在kkk进制下的不进位加法.系统会随机生成一个数xxx,你猜这个数,假设当前猜的数为yyy,如 ...

  8. Codeforces Round #731 (Div. 3) G. How Many Paths? dfs + 拓扑 + 思维

    传送门 题意: 给你一张nnn个点mmm条边的图,让你对每个点确定一个编号,规则如下: (1)(1)(1) 对于不能到的点编号为000. (2)(2)(2) 对于只有一条路径能到这个点的点编号为111 ...

  9. Codeforces Round #594 (Div. 2) C. Ivan the Fool and the Probability Theory 思维 + dp

    文章目录 题意: 思路 题意: 思路 一开始找规律,表都打好了,没找出来.. 找规律还是适合让队友来. 先考虑第一行,我们先计算第一行的方案数,设f[i][j]f[i][j]f[i][j]表示到了ii ...

最新文章

  1. 【青少年编程竞赛交流】12月份微信图文索引
  2. JDK动态代理小例子
  3. zeroc ice php,ZeroC ICE+PHP整合
  4. OFDM同步算法之Park算法
  5. 干燥剂变身“配重剂”,究竟有多少商家在休闲零食市场浑水摸鱼?
  6. python中的wx_配置 Python的wxWidgets可视开发环境 | 学步园
  7. 信息安全工程师笔记-公钥密钥体制概念
  8. Idea+springcloud+zookeeper做的服务发现和远程连接zookeeper
  9. 华为今年不会推出运行鸿蒙OS的手机;Deno 1.3.2发布|极客头条
  10. 面试:输出循环小数的循环节
  11. Android Studio使用IconFont阿里矢量图标库
  12. 牛客练习赛63 牛牛的树行棋
  13. Innovation - 3W咖啡馆 - 这里是互联网人的社交圈子
  14. Linux文件夹加密、解密
  15. 一个读者大佬精心总结的阿里、腾讯、宇宙条大厂 Offer 面经和硬核面试攻略
  16. 什么是敏捷BI?和传统BI有什么不同?
  17. 使用JAVA实现看吉日/黄道吉日/看日子功能的开发方法
  18. 如何从0到1搭建电商促销系统
  19. PHP 图片处理类(水印、透明度、缩放、相框、锐化、旋转、翻转、剪切、反色)...
  20. 微软2013暑假实习生笔试题解析

热门文章

  1. html不同平台,基于H5端自定义平台怎么使用和H5端不一样的index.html?
  2. shiro 字段不是username 和password_Shiro整合JWT
  3. c语言设计程序框图,C语言课程设计————写下流程图! 谢谢
  4. ios取两个数之间的随机小数_如果取到小数区间内的任一数字?
  5. 求两个集合是否有交集 c语言_高中数学:集合与函数概念知识点总结
  6. leetcode最小面积_LeetCode—— 939. 最小面积矩形(JavaScript)
  7. python连接es_Elasticsearch --- 3. ik中文分词器, python操作es
  8. jQuery 判断元素是否在屏幕可见区域内
  9. 【redis】批量删除key
  10. mimo的误码率_混合波束成形专栏|基础:深入浅出5G,毫米波,大规模MIMO与波束赋形...