- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
解题思路
本题是关于矩形判定的计算几何问题,需要注意的是,输入的四条边不一定按照顺序输入。我们需要先判断输入的四条边能否构成矩形,如果能,就判断这个矩形是否是正面积的矩形。
因为题目要求门的四个边分别平行于坐标轴,而一个矩形有两条平行于?x?轴的边和两条平行于?y?轴的边,所以我们可以先判断每条边是否平行于坐标轴,如果不是,那么这四条边就不能构成一个矩形。具体实现方法是遍历输入的四条边,如果横坐标和纵坐标都不同,那么就说明这条边不与坐标轴平行,不能构成矩形。
同时,一个矩形的两条平行于?x?轴的边长度相等,两条平行于?y?轴的边长度也相等,因此我们还需要统计每条边的长度,如果有两条长度不相等的边,那么这四条边也不能构成一个矩形。如果四条边能构成矩形,接下来我们需要判断这个矩形是否是正面积的矩形。一个矩形的面积是它的长和宽的乘积,因为这个矩形的边平行于坐标轴,所以矩形的长和宽可以根据边的坐标计算得到。
一个更快的方法是,在判断了有两对分别平行坐标轴的线段后,由于只输入了?8?个坐标,但是矩形有?4?个顶点,那么每个顶点出现了有且只有?2?次。
遍历输入的四条边需要?O(1)?的时间复杂度,统计每条边的长度和检查每个点的出现次数也需要O(1)?的时间复杂度,因此总的时间复杂度是?O(1)。
AC_Code
C++
#includebits/stdc++.h
usingnamespacestd;
typedefpairint,intpii;
vectorpiip;
intmain()
{
boolflag=true;
mappii,intmp;
intx1,x2,y1,y2;
intpx=0,py=0;
for(inti=0;i4;i++)
{
cinx1y1x2y2;
if(x1!=x2y1!=y2)flag=false;
elseif(x1==x2)px++;
elseif(y1==y2)py++;
elseflag=false;
mp[{x1,y1}]++;
mp[{x2,y2}]++;
p.push_back({x2,y2});
p.push_back({x1,y1});
}
if(px!=2||py!=2)flag=false;
for(inti=0;ip.size();i++)
{
if(mp[p[i]]!=2)flag=false;
}
if(flag)coutYESendl;
elsecoutNOendl;
return0;
}
Java
importjava.util.ArrayList;
importjava.util.Collections;
importjava.util.Comparator;
importjava.util.List;
importjava.util.Scanner;
publicclassrectangle{
intx,y;
rectangle(intx,inty){
this.x=x;
this.y=y;
}
staticintcompare(rectangler1,rectangler2){
returnr1.x-r2.x==0?r2.y-r1.y:r2.x-r1.x;
}
publicstaticvoidmain(String[]args){
Stringres=YES;
intz1=0;
intz2=0;
Scannersc=newScanner(System.in);
Listrectanglerectangles=newArrayListrectangle();
for(inti=0;i4;i++){
intx1=sc.nextInt();
inty1=sc.nextInt();
intx2=sc.nextInt();
inty2=sc.nextInt();
您可能关注的文档
最近下载
- UG说课课件文档.ppt VIP
- 动词不定式的用法-三个和尚.pptx VIP
- 湖州师范学院2021-2022学年第1学期《高等数学(上)》期末考试试卷(A卷)及标准答案.pdf
- 国家社会科学基金项目2024年度课题指南.docx VIP
- 国家中小学智慧教育平台的应用培训.pptx VIP
- 幼儿园小班社会活动课件《我的家》.pptx VIP
- 初中英语《Unit1Willpeoplehaverobots》单元教学设计以及思维导图.pdf
- 2024年度国家社会科学基金项目课题指南2.pptx VIP
- GBT3098[GBT309812010,紧固件机械性能,螺栓螺钉和螺柱].pdf
- 景观设计基础教案.pdf VIP
文档评论(0)