传送门

•题意

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

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

否则输出YES

•思路

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

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

这个就类似于那样

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

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

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

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

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

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

    

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

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

•代码

 #include<bits/stdc++.h>
using namespace std;
#define ll long long
struct node
{
ll xl,yl,x2,y2;
}a[],p; bool CH(node x,node y )//重合
{
if(x.xl>=y.xl&&x.x2<=y.x2&&x.yl>=y.yl&&x.y2<=y.y2)
return true;
return false;
}
ll XJ(node a,node b)//相交
{
ll cx1=max(a.xl,b.xl);
ll cy1=max(a.yl,b.yl);
ll cx2=min(a.x2,b.x2);
ll cy2=min(a.y2,b.y2);
if(cx1>cx2||cy1>cy2)//不相交 p=node{cx1,cy1,cx2,cy2};//相交矩形
return (cx2-cx1)*(cy2-cy1);//相交面积
} ///包括NO 不包括YES
int main()
{
for(ll i=;i<=;i++)
cin>>a[i].xl>>a[i].yl>>a[i].x2>>a[i].y2; if(CH(a[],a[])||CH(a[],a[]))///重合在内部
{
puts("NO");
return ;
} if(XJ(a[],a[])<) ///2 3不相交
{
puts("YES");
return ;
} if(XJ(a[],a[])>=) ///2 3相交
{
ll s1=XJ(a[],a[]);
node p1=p;
ll s2=XJ(a[],a[]);
node p2=p;
ll s=(a[].y2-a[].yl)*(a[].x2-a[].xl);
s+=max(1ll*,XJ(p1,p2));///重合处会多算 if(s1+s2==s)
{
puts("NO");
return ;
}
else
{
puts("YES");
return ;
}
}
} /**
1 1 4 2
1 0 3 4
2 0 5 3
*/

Codeforces Round #587 C. White Sheet(思维+计算几何)的更多相关文章

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

    链接: https://codeforces.com/contest/1216/problem/C 题意: There is a white sheet of paper lying on a rec ...

  2. Codeforces Round #587

    题目链接:Round #587 题目答案:官方Editorial.My Solution A. Prefixes 题意:给一字符串,只含有'a'或'b',需要改变某些位置('a'变'b'或'b'变'a ...

  3. Codeforces Round #587 (Div. 3)

    https://codeforces.com/contest/1216/problem/A A. Prefixes 题意大概就是每个偶数位置前面的ab数目要相等,很水,被自己坑了 1是没看见要输出修改 ...

  4. Codeforces Round #587 (Div. 3) C题 【判断两个矩形是否完全覆盖一个矩形问题】 {补题 [差点上分系列]}

    C. White Sheet There is a white sheet of paper lying on a rectangle table. The sheet is a rectangle ...

  5. Educational Codeforces Round 40 C. Matrix Walk( 思维)

    Educational Codeforces Round 40 (Rated for Div. 2) C. Matrix Walk time limit per test 1 second memor ...

  6. 【CF1256】Codeforces Round #598 (Div. 3) 【思维+贪心+DP】

    https://codeforces.com/contest/1256 A:Payment Without Change[思维] 题意:给你a个价值n的物品和b个价值1的物品,问是否存在取物方案使得价 ...

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

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

  8. Codeforces Round #395 (Div. 2)(A.思维,B,水)

    A. Taymyr is calling you time limit per test:1 second memory limit per test:256 megabytes input:stan ...

  9. Codeforces Round #416 (Div. 2)(A,思维题,暴力,B,思维题,暴力)

    A. Vladik and Courtesy time limit per test:2 seconds memory limit per test:256 megabytes input:stand ...

随机推荐

  1. 2019-11-12-WPF-添加窗口消息钩子方法

    title author date CreateTime categories WPF 添加窗口消息钩子方法 lindexi 2019-11-12 18:46:53 +0800 2019-06-05 ...

  2. weixin 微信开放平台 微信公众平台

    官网地址入口 微信小程序 https://mp.weixin.qq.com/ appid and openid not match 1.appid :是公众号的ID. 2.openid:关注公众号生成 ...

  3. xib搭建scrollView无法滑动的问题

    最近给xib中的scrollView添加contentView的时候,view的约束总是参照莫名其妙的东西,不是frameLayout就是safeArea 因为之前都是默认以superView为参照系 ...

  4. Oracle事物处理

    n  什么是事物 事物是把对数据库的一系列操作(dml)看做一个整体 事物用于保证数据的一致性,它由一组相关的dml语句组成,改组的dml语句要么全部成功,要么全部失败. 如:网上转账就是典型的要用事 ...

  5. @游记@ CSP2019

    目录 @day -??@ @day -1@ @day 0@ @day 1@ @day 2@ @day ??@ @day ??+1@ @day -??@ 和 yhn 学长在校外偶遇. 聊了一些.他说现在 ...

  6. linux环境变量设置和默认执行语句设置

    环境变量设置 1.export export ORACLE_HOME=/usr/local/instantclient_12_2export PATH=$ORACLE_HOME:$PATHexport ...

  7. LightOJ 1370 Bi-shoe and Phi-shoe【欧拉函数 && 质数】

    题目链接: http://lightoj.com/login_main.php?url=volume_showproblem.php?problem=1370 题意: 给定值,求满足欧拉值大于等于这个 ...

  8. Java练习 SDUT-1294_选票统计

    选票统计 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 某校学生会主席由全校学生投票选举产生,共有m名候选人报名参选, ...

  9. 创建ROS 工作空间时出现:程序“catkin_init_workspace”尚未安装,程序“catkin_make”尚未安装。

    问题:创建ROS 工作空间时出现:程序“catkin_init_workspace”尚未安装,程序“catkin_make”尚未安装. 解决方法: source /opt/ros/kinetic/se ...

  10. OpenStack组件系列☞horizon搭建

    第一步:部署horizon环境: 安装部署memcache 安装软件包 yum install memcached python-memcached 启动memcache并且设置开机自启动 syste ...