HDU 5206 Four Inages Strategy

题意:给出三维空间中的4个点 判断能否组成正方形

比赛时直接套的三维几何的版子 判断3个向量中 是否有两个相等 垂直 且和为第三个向量 

其实可以算出他们两两之间距离 排个序 看小的四个是否相等(4个边) 和剩下两条对角线相等 且长度为根号2倍的边长 (防止误差可以一直用平方来计算)

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cctype>
#include<cmath>
#include<vector>
#include<queue>
#include<map>
#include<algorithm>
#include<set>
#define scnaf scanf
#define cahr char
#define bug puts("bugbugbug");
using namespace std;
typedef long long ll;
const int mod=1000000007;
const int maxn=2000+5;
const int inf=1e9;
const int maxe=200000;
struct Point{
  ll x,y,z;
  Point(ll x=0,ll y=0,ll z=0):x(x),y(y),z(z){ }
}a[10];
Point operator - (Point a,Point b){ return Point(a.x-b.x,a.y-b.y,a.z-b.z); }
Point operator + (Point a,Point b){ return Point(a.x+b.x,a.y+b.y,a.z+b.z); }
Point operator * (Point a,Point b){ return Point(a.x*b.x+a.y*b.y+a.z*b.z); }
bool operator == (const Point &a,const Point &b) {
    return a.x==b.x&&a.y==b.y&&a.z==b.z;
}
Point b,c,d;
ll dis(Point a)
{
    return a.x*a.x+a.y*a.y+a.z*a.z;
}
int main()
{
    int T_T,test=1;
    scanf("%d",&T_T);
    while(T_T--)
    {
        int flag=0;
        for(int i=0;i<4;i++)
          scanf("%I64d%I64d%I64d",&a[i].x,&a[i].y,&a[i].z);
        b=a[1]-a[0];
        c=a[2]-a[0];
        d=a[3]-a[0];
        if(dis(b)==dis(c)&&b+c==d&&b*c==0) flag=1;
        else if(dis(b)==dis(d)&&b+d==c&&b*d==0) flag=1;
        else if(dis(d)==dis(c)&&d+c==b&&d*c==0) flag=1;
        printf("Case #%d: ",test++);
        if(flag) puts("Yes");
        else puts("No");
    }
    return 0;
}



1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、 4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值