题目:

不正方形

Description

今天是数学课!小A发现同学们上课很消极,于是给大家出了一个数学小游戏。

小A在黑板上画了一个很大很大的平面直角坐标系,然后给出了若干个红点和黄点,现在同学们需要回答,这些点能否构成一个不正方形

不正方形的定义为:四个点构成一个凸四边形,且相对顶点颜色相同,相邻顶点颜色不同。

为了降低难度,认真的小A保证不会有重点(即不会有两个点坐标相同),也不会有三个点共线的情况。

同学们觉得很有趣,但这个问题对于小朋友们还太难了,聪明的你能帮帮他们吗?

Input

第一行两个正整数,n、m。

接下来n行,每行两个整数x和y,表示红点的坐标。

接下来m行,每行两个整数x和y,表示黄点的坐标。

Output

如果能构成,输出“YES”;否则,输出“NO”。(不含双引号)

Sample Input 1

2 2
1 1
2 2
1 2
2 1

Sample Output 1

YES

解题思路:

这题感觉是一个数学题,关键就在这个凸四边形。什么是凸四边形简单来说就是四边形的内角全部都小于180度,理解到这对于解这个题已经足够了,首先我们需要知道怎么样才能画出凸四边形,我们假想在一个二维平面中选择三个点,我们会发现在第四个点确定之前我们是没有办法得知这个四边形是凹四边形还是凸四边形,所以第四个点的位置将决定该四边形的形状,我们找到凹凸转换的临界态时第四个点的位置就能解出来这道题了,当第四个点在已经确定出的对角线上时,以第四个点为顶点的内角为180度。在这条对角线上开始,只增大或者减小横坐标都可能使四边形变成凸多边形,具体增大或者减小与另一个点的位置有关,移动完后,如果这两个点位于对角线的同一侧,那么就是凹多边形,异侧就是凸多边形

接下来就是用程序语言解决问题了,题目还有一个要求,相邻点颜色不同,对角点颜色相同,别看这个是一个附加条件实际上是为我们解题提供便利,这在告诉我们如何找对角线的点,依次取一种颜色中的两个点,判断其他颜色点相对于这两点构成直线的位置,如果在两侧都有另一种颜色的点那么就可以画出凸正方形,如果没有那么就不可以。

代码部分:

#include<bits/stdc++.h>
using namespace std;
int red[255][2],yellow[255][2];//红色、黄色两点的位置;bool check_up(int a,int b,int c,int d,int e,int f)//判断点(e,f)是否在(a,b),(c,d)所构成的直线(一条对角线)上方;
{double k = (double)(b-d)/(a-c);double b_ = (double)b-(double)a*k;double y_ = (double)e*k+b_;double f_ = (double)f;if(f_ >= y_)return true;elsereturn false;}
int main()
{int n,m;cin >> n >> m;//两种颜色的输入for(int i = 0; i < n; i++){int a,b;cin >> a >> b;red[i][0] = a;red[i][1] = b;}for(int i = 0; i < n; i++){int a,b;cin >> a >> b;yellow[i][0] = a;yellow[i][1] = b;}int up,low;//遍历任选红色点的所有可能;for(int i = 0; i < n; i++){for(int j = i; j < n; j++){up = 0,low = 0;//上方是否有点和下方是否有点的标记;for(int k = 0; k < m; k++){if(check_up(red[i][0],red[i][1],red[j][0],red[j][1],yellow[k][0],yellow[k][1]))up = 1;elselow = 1;}if(up == 1 && low == 1)//可以画出凸四边形;break;}if(up == 1 && low == 1)break;}if(up == 1 && low == 1)//可以画出凸四边形;cout << "YES" ;elsecout << "NO";return 0;
}

PS:前几天在赛氪上买了一个比赛,今天是比赛时间,这道题也是我今天做的,但是并不是比赛题目........ma die我进错oj了,因为开始的时候晚了一点,所以开始看到题啥都没想就开始做了,比赛结束,我随便点着看,结果发现了正确的竞赛入口,额......绝望,打了个真“假赛”,还好不是啥大比赛,就当花钱买了个教训以后细致一点吧,也提醒大家不要犯和我一样愚蠢的错误。

【赛氪 Saikr】不正方形(数学、平面几何 ps:今天打了假赛)相关推荐

  1. Latex-TiKZ绘制数学平面几何图教程

    Latex-TiKZ绘制数学平面几何图教程 你好china 基本图形 辅助网格 点 直线 矩形 圆 椭圆 弧 曲线 坐标轴 图形控制 点的偏移 两个点定义出一个点 平移 缩放 旋转 倾斜变换 定点旋转 ...

  2. Algorithm:数学建模大赛(国赛和美赛)的简介/内容、数学建模做题流程、历年题目类型及思想、常用算法、常用工具之详细攻略

    Algorithm:数学建模大赛(国赛和美赛)的简介/内容.数学建模做题流程.历年题目类型及思想.常用算法.常用工具之详细攻略 目录 国内数学建模大赛简介 1.本科生数学建模大赛 2.研究生数学建模大 ...

  3. 2020年 第11届 蓝桥杯 Java B组 省赛真题详解及小结【第1场省赛 2020.7.5】

    蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2021年(第12届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:部分 ...

  4. 2020年 第11届 蓝桥杯 Java C组 省赛真题详解及小结【第1场省赛 2020.7.5】

    蓝桥杯 Java B组 省赛真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 注意:部分代码及程序 源自 蓝桥杯 官网视频(历年真题解析) 郑未老师. 2013年 第04届 蓝桥杯 ...

  5. 2020年 第11届 蓝桥杯 C/C++ B组 省赛真题详解及小结【第1场省赛2020.7.5】【Java版】

    蓝桥杯 Java B组 省赛真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 注意:部分代码及程序 源自 蓝桥杯 官网视频(历年真题解析) 郑未老师. 2013年 第04届 蓝桥杯 ...

  6. 2021年 第12届 蓝桥杯 Java B组 省赛真题详解及小结【第1场省赛 2021.04.18】

    蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[题目下载.2013年(第4届)~2020年(第11届)] CSDN 蓝桥杯 专栏 2013年 第04届 蓝桥杯 Java B组 省赛真题详解及小结 ...

  7. 晋级赛关键一场遇到服务器中途维护,第四届全球争霸赛-大区赛常见问题说明...

    为了解决玩家在比赛中遇到的困难和疑惑,更好的参与全球争霸赛大区赛,下面将针对服务器大区赛中常见的问题和疑问进行解答,请广大玩家相互转告. 常见问题分类: 大区赛排位赛相关问题 大区赛决赛相关问题 比赛 ...

  8. LMS赛区公告:DG战队因假赛被永久除名

    [TechWeb]4月24日消息,LMS赛区今日发布除名公告,Dragon Gate Team战队(以下简称DG)因假赛,确认违反职业联赛规范,被永久除名. 公告显示,英雄联盟 LMS 职业联赛主办单 ...

  9. Symantec赛门铁克企业版本防火墙怎么防止勒索病毒Symantec赛门铁克关闭137,138,139,445端口​

    Symantec赛门铁克企业版本防火墙怎么防止勒索病毒Symantec赛门铁克关闭137,138,139,445端口​ 我是否受到WannaCry勒索软件的保护? Symantec Data Cent ...

最新文章

  1. git 推送本地分支到远程分支 git push origin
  2. 在现有k8s集群中安装kubesphere时报错:metrics-server failed
  3. ArcGIS实验教程——实验九:矢量数据提取
  4. ifram 表单post 方法免密登录的实现
  5. 如何创建 Visual Studio 2017 RC 离线安装包
  6. convertTo的用法
  7. 【数据库实验一】基础操作
  8. 手把手教你升级车载导航
  9. 《Android开源库》 Google 最新Hover Menu(悬浮菜单)
  10. 【数据挖掘】从“文本”到“知识”:信息抽取(Information Extraction)
  11. 新的分享之路开启,感谢您的陪伴
  12. 云服务器修改安全组规则要重启吗,华为云修改安全组需要重启吗
  13. Kettle 8.2 打开spoon.bat后闪退的解决办法
  14. vscode连接远程服务器遇到Bad owner or permissions on C:\\Users\\XXX/.ssh/config的解决方法
  15. Android开发技巧:我的菜单我做主
  16. iapp小钢琴程序代码
  17. Linux - 磁盘I/O性能评估
  18. yii2多张图片上传后端保存功能
  19. 从土豆优酷的例子谈用户需求和产品设计
  20. 【J-Falsh下载,烧录,批处理操作,手动添加芯片】

热门文章

  1. 负数二进制表示的方式及原因
  2. 机器学习关键步骤(一)
  3. python 创建和使用字典
  4. 将 Cpar 文件导入 2019 版的 Carsim 后,无法打开 video+plot 是什么问题?
  5. 记一次js文件AES加密的key与iv逆向分析
  6. event-log-tags
  7. 使用 imagecopymerge() 函数创建半透明水印
  8. csdn的,精彩连载!
  9. Python输出16进制不带0x补零,整数转16进制,字符串转16进制
  10. transformer论文研读