hdu 5206:Four Inages Strategy(判断四个点能否组成正方形)

java判断4个坐标是否构成正方形 给定4个坐标,判断这4个坐标是否可以构成一个正方形,代码里用了两种方法。 第一种,对坐标先排序,然后计算邻边和斜边的关系; 第二种,直接求出两点之间的距离,4个点总共6种距离,然后对距离排序,其中边相等,斜线相等 立即下载

小F在祖屋中意外发现一本上古时代传承下来的秘籍,名为《四象阵法》,他按捺不住内心的激动,翻开秘籍,一字一句地读了起来,“用四块元石作为阵基摆放在空间四处位置,如果四块元石形成一个正方形,则阵法激活,有杀敌困敌之效”,小F走遍五湖四海,终于集齐了四块元石,并将四块元石放置在四个坐标点上,可是他不知道阵法是否能够成功激活,于是,由你来告诉他答案。
输入描述
第一行只有一个整数
  
   T(T≤10000)
  ,表示测试数据组数。接下来有
  
   T
  行,每行包括12个整数,
  
   x1,y1,z1,x2,y2,z2,x3,y3,z3,x4,y4,z4
  ,分别表示四块元石的坐标
  
   |x|,|y|,|z|≤100000
  。输入保证没有重点。
输出描述
每组数据输出一行Case #
  
   x
  : 
  
   ans
  。
  
   x
  表示组数编号,从1开始,如果阵法能够激活,
  
   ans
  为Yes,否则为No。
输入样例
2
0 0 0 0 1 0 1 0 0 1 1 0
1 1 1 2 2 2 3 3 3 4 4 4
输出样例
Case #1: Yes
Case #2: No

http://acm.hdu.edu.cn/showproblem.php?pid=5206

两种方法:

1.在p2,p3,p4中枚举两个点作为p1的邻点,不妨设为pi,pj,然后判断p1pi与p1pj是否相等、互相垂直,然后由向量法,最后一个点坐标应该为pi+pj−p1,判断是否相等就好了。

#include<iostream>  
#include<algorithm>  
#include<string>  
#include<map>  
#include<vector>  
#include<cmath>  
#include<string.h>  
#include<stdlib.h>  
#include<cstdio>  
#define ll long long  
using namespace std;
struct node{
	int a,b,c;
};
int main(){
	int t;
	cin>>t;
	int cnt=0;
	while(t--){
		node x[4];
		for(int i=0;i<4;++i)
			cin>>x[i].a>>x[i].b>>x[i].c;
		int u=0;
		for(int i=1;i<4;++i){
			for(int j=i+1;j<4;++j){
				if((x[i].a-x[0].a)*(x[i].a-x[0].a)+(x[i].b-x[0].b)*(x[i].b-x[0].b)+(x[i].c-x[0].c)*(x[i].c-x[0].c)
				==(x[j].a-x[0].a)*(x[j].a-x[0].a)+(x[j].b-x[0].b)*(x[j].b-x[0].b)+(x[j].c-x[0].c)*(x[j].c-x[0].c)){
					if((x[i].a-x[0].a)*(x[j].a-x[0].a)+(x[i].b-x[0].b)*(x[j].b-x[0].b)+(x[i].c-x[0].c)*(x[j].c-x[0].c)==0
					&&x[6-i-j].a==x[i].a+x[j].a-x[0].a&&x[6-i-j].b==x[i].b+x[j].b-x[0].b&&x[6-i-j].c==x[i].c+x[j].c-x[0].c){
						u=1;
						break;
					}
				}
			}
		}
		cout<<"Case #"<<++cnt<<": ";
		if(u==0)
			cout<<"No"<<endl;
		else
			cout<<"Yes"<<endl; 
	}
	return 0;
}
2.算出其他三点到一个点的距离,如果有两条相等且长度的平方是另一条的长度的平方的1/2,则为正方形(这题都是整数,数据弱)

#include<stdio.h>  
#include<string.h>  
int main()  
{  
    int bbs;  
    int x1,y1,z1,x2,y2,z2,x3,y3,z3,x4,y4,z4;  
    scanf("%d",&bbs);  
    int k=1;  
    while(bbs--)  
    {  
        scanf("%d%d%d%d%d%d%d%d%d%d%d%d",&x1,&y1,&z1,&x2,&y2,&z2,&x3,&y3,&z3,&x4,&y4,&z4);  
        int sum1=(x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)+(z2-z1)*(z2-z1);  
        int sum2=(x2-x3)*(x2-x3)+(y2-y3)*(y2-y3)+(z2-z3)*(z2-z3);  
        int sum3=(x2-x4)*(x2-x4)+(y2-y4)*(y2-y4)+(z2-z4)*(z2-z4);  
          
        int a,b;  
        if(sum1==sum2||sum2==sum3||sum3==sum1)  
        {  
            if(sum1==sum2)  
            {  
                a=sum1;  
                b=sum3;  
            }  
            else if(sum2==sum3)  
            {  
                a=sum2;  
                b=sum1;  
            }  
            else   
            {  
                a=sum3;  
                b=sum2;  
            }  
            if(a*2==b)  
            {  
                printf("Case #%d: Yes\n",k++);  
            }  
            else printf("Case #%d: No\n",k++);  
        }  
        else   
        {  
            printf("Case #%d: No\n",k++);  
        }         
    }  
    return 0;  
}  


BERT之提取特征向量 及 bert-as-server的使用 本文内容列表提取句向量1、句向量简介1-1传统句向量1-2、BERT句向量2、 extract_features.py源码分析2-1 main函数 前一篇文章 BERT介绍及中文文本相似度任务实践 简单介绍了使用BERT进行中文文本相似度计算的方法,这篇文章着重对特征提取方法进行讲述。 提取句向量 1、句向量简介 1-1传统句向量 更多采用word embedding的方式取加权平均,该方法的一大... 阅读详情

相关推荐

Frigate进阶玩法:如何用MQTT和Python脚本扩展你的自定义目标检测算法

本文详细介绍了如何通过MQTT和Python脚本扩展Frigate的自定义目标检测算法,无需修改源码即可实现特殊场景(如工业设备异常、农业病虫害识别)的高效检测。文章涵盖Frigate配置、外部检测服务构建、高级集成技巧及性能优化实践,帮助开发者灵活扩展智能监控能力。

weixin_42662293的博客 350

判断四个点能否组成正方形&&一个点绕另一个的点旋转

判断四个点组成正方形。 三个条件: 1.四个边相等且长度不为0 (先把点排序,再计算) 2.有一个直角(根据3个点组成的两个向量点乘为0) struct point { double x, y; } a[4]; bool cmp(point a, point b) { if (a.x != b.x) return a.x < b.x;...

weixin_30387799的博客 377

TX 的 LOL(Local Oscillator Leakage,本振泄露)

项目内容LOL 是什么本振残留在 TX 输出中心频率上的杂散主要原因IQ 失衡、硬件不完美、零中频架构影响杂散、干扰、性能劣化、安全问题解决方法初始化校准 + 跟踪校准(AD9371 支持)检测手段频谱仪、回环检测、ADC ILA 抓取。

weixin_41230430的博客 2046

【LeetCode】验证4个点是否构成正方形

问题描述 Given the coordinates of four points in 2D space, return whether the four points could construct a square. The coordinate (x,y) of a point is represented by an integer array with two integers. Ex...

zhonglao的博客 3744

基于深度学习的时间序列预测

深度学习在时间序列数据中应用广泛,学术界已经有很多深度学习模型来适应不同领域的时间序列数据集的多样性。那么到底有哪些基于深度学习的时间序列预测模型?他们的优缺点是什么?让我们一起来看一下。

Sharon0408的博客 6580

Android 13高通平台CTS camera部分fail项修改(续)

接着上一篇,有几个提了case高通也分析了很久的fail项,其中最离谱的是问题1,第一个接手case的人反反复复处理、内部排查踢皮球、要求log,折腾了很久,最终就给出个解不了的结论。后面还是靠着自己发现了一些蛛丝马迹,并且换了个case接手人才最终解决。

hkj887tg的博客 2060

如何判断任意四个点可以组成矩形及正方形 && 点绕另外一个点旋转后的坐标

在一些问题当中,

1万+

手把手解决GD32H759I-EVAL以太网通信三大坑:IP冲突、端口绑定失败、LWIP内存泄漏

本文针对GD32H759I-EVAL开发板在以太网通信调试中常见的三大难题——IP地址冲突、端口绑定失败和LWIP内存泄漏,提供了详细的实战排障指南。文章深入分析了问题根源,并给出了具体的网络配置、端口管理策略和内存泄漏检测方法,帮助开发者快速定位并解决嵌入式网络通信中的棘手问题,确保系统稳定运行。

weixin_29196315的博客 141

hdu-5206(判断空间正方形)

题意:判断空间四点是否构成正方形。 思路:判断空间上4个点是否形成一个正方形方法有很多,这里给出一种方法,在p2,p3,p4中枚举两个点作为p1的邻点,不妨设为pi,pj,然后判断p1pi与p1pj是否相等、互相垂直,然后由向量法,最后一个点坐标应该为pi+pj−p1,判断是否相等就好了。 #include #include #include #include #include #includ

AC之路 650

OpenFOAM-多孔介质模型(porous media)

文章目录一、多孔介质(porous media)二、使用步骤1.达西定律2.Darcy-Forchheimer3.OpenFOAM fvOptions4.paraview动画每帧显示时间(Annotate Time)5.参考内容总结 一、多孔介质(porous media) 在流体力学中,流体流经多孔介质是指流体流经多孔介质时的行为方式,如海绵或木材,或使用沙子或其他多孔材料过滤水。 我们将展示如何设置多孔层,并使用OpenFOAM模拟流体通过该介质。 二、使用步骤 1.达西定律 达西定律最初是由达西通.

zq93538196的博客 9938

分享一下如何使用labelimg制作自己的YOLO数据集

首先准备一下自己的下准备一个空文件夹用于保存标签文件,如下图所示。

skywalkerxhx的博客 831

java给定四个点判断正方形_判断四个点能否组成正方形&&一个点绕另一个的点旋转...

判断四个点组成正方形。三个条件:1.四个边相等且长度不为0(先把点排序,再计算)2.有一个直角(根据3个点组成的两个向量点乘为0)struct point{double x, y;} a[4];bool cmp(point a, point b){if (a.x != b.x)return a.x < b.x; //如果,横坐标不相等,所有点按横坐标升序排列return a.y < b...

weixin_26766559的博客 1155

Cesium雷达追踪追踪(圆锥体效果)

【代码】Cesium雷达追踪追踪(圆锥体效果)

God's asylum的博客 2931

HDU 5206 Four Inages Strategy(几何题)

Four Inages Strategy Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1092    Accepted Submission(s): 394 Problem Description Young

一蓑烟雨任平生 565

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

HDU5206-Four Inages Strategy

Problem Description Young F found a secret record which inherited from ancient times in ancestral home by accident, which named "Four Inages Strategy". He couldn't restrain inner exciting, open the

这里是两只喜欢代码的电路狗。 615

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

hdu 5206 Four Inages Strategy (空间向量)

中文题目:《四象阵法》 判断空间四点能否组成正方形。 一次AC,好激动~ #include <algorithm> #include <iostream> #include <cstring> #include <cstdio> #include <cmath> typedef long long ll;...

anxianxia1695的博客 157

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

【HDU 5206】Four Inages Strategy —— 计算几何之空间正方形

原题链接 Four Inages Strategy Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 664    Accepted Submission(s): 259 Problem Descript

treasuresss的专栏 615

HDU 5206 BC Four Inages Strategy

题意:给你四个空间坐标点,让你判断这四个点可以围成一个正方形吗?如果是,输出Yes,否则输出No 想法就是枚举  两两之间的距离,4个点就有6个距离,然后从小到大排序 ,前面的4个必须要相等,是四边形的四条边,最后两个较大边也必须要相等,是两条对角线 #include #include #include #include #include using namespace std; in

Jylh365520的博客 473

BC #38 / hdu 5206 Four Inages Strategy

题解 写的时候智障了…枚举所有的点的位置…傻了傻了 正解:总共四个点,只有6条边,sort一下,前四条相等(边),后两条相等(对角线),且要符合勾股定理 如果只有四边相等,对角线相等: awsl 为防精度问题,距离直接按平方计算 对了,写的时候发现: 这么写,是对的 for (int cs = 1; cs <= T; ++cs) { if(solve()) printf("Cas...

Yubing792289314的博客 256

HDU5206Four Inages Strategy

HDU5206Four Inages Strategy

Achiberx 712

hdu 5206 Four Inages Strategy【计算几何】【判断空间正方形】

Four Inages Strategy Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1395    Accepted Submission(s): 478 Problem Description Young F

mengxiang000000 644

hdu 5206 Four Inages Strategy

题目大意:给出空间中四个点的坐标,问能否构成一个正方形。注意,这里的点坐标为整数。 由于点坐标为整数,因此可以直接算出由四点组合成的六条边的边长。判断是否有四条相等,另外两条相等(对角线)且其平方为前四条的平方的两倍。 如果这里给出的坐标不是整数,则需要考虑异面的情况。即还得判断对角线是否共面。 #include #include #include #include #include

白学病患者的专栏 578

hdu 5206 Four Inages Strategy 判断是否是正方形

Four Inages Strategy Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5206 Description Young F found a se...

weixin_33991418的博客 107

Four Inages Strategy hdu 5206

Four Inages Strategy Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 182    Accepted Submission(s): 66 Problem Description Young F

纯纯的心儿的专栏 405

HDU 5206 Four Inages Strategy

题意:给出三维空间中的4个点 判断能否组成正方形 比赛时直接套的三维几何的版子 判断3个向量中 是否有两个相等 垂直 且和为第三个向量  其实可以算出他们两两之间距离 排个序 看小的四个是否相等(4个边) 和剩下两条对角线相等 且长度为根号2倍的边长 (防止误差可以一直用平方来计算) #include #include #include #include #include #include

weilehuozhe的专栏 338

hdu 5206 Four Inages Strategy

题目大意: 判断空间上4个点是否形成一个正方形 分析: 标称思想 :在p2,p3,p4中枚举两个点作为p1的邻点,不妨设为pi,pj,然后判断p1pi与p1pj是否相等、互相垂直,然后由向量法,最后一个点坐标应该为pi+pj−p1,判断是否相等就好了。 我的思想 : 枚举了各种情况,4条边相等+有一个角是直角。后来想想,因为是在三维中,有可能4个点不共面,这点没想到,不过这道题AC了,估...

weixin_30905133的博客 69
上一篇: 编程之美初赛第二场 扑克牌(四维dp,难)
下一篇: hdu 5207 求数组中任取两数的gcd最大值(灵活题)
ccyy-
博客等级 码龄12年 31粉丝 244原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值