欢迎访问 生活随笔!

尊龙游戏旗舰厅官网

当前位置: 尊龙游戏旗舰厅官网 > > 编程问答 >内容正文

编程问答

[bc]four inages strategy(三维空间判断正方形) -尊龙游戏旗舰厅官网

发布时间:2025/1/21 编程问答 7 豆豆
尊龙游戏旗舰厅官网 收集整理的这篇文章主要介绍了 [bc]four inages strategy(三维空间判断正方形) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

题目连接 :http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?cid=577&pid=1001

题目大意:在三维空间中,给你四个点,判断是否可以组成一个正方形:

解题思路:首先判断四条边是否相等,判断方法取三个边如果两边相等且平方和相加等于第三边平方和即可,在判断是否有一个角为直角,判断方法取三点叉乘为0就为直角。

ac代码:

#include #include #include<string.h> #include #include #include using namespace std; struct point {int x;int y;int z; }p[5]; int dis(point a,point b) {return (a.x-b.x)*(a.x-b.x) (a.y-b.y)*(a.y-b.y) (a.z-b.z)*(a.z-b.z); } int cheng(point a,point b,point c) {return (a.x-b.x)*(c.x-a.x) (a.y-b.y)*(c.y-a.y) (a.z-b.z)*(c.z-a.z); } int fun(int a,int b,int c) {if((a==b&&a b==c)||(a==c&&a c==b)||(c==b&&c b==a)) return 1;else return 0; } int judge() {int a,b,c,a2,b2,c2,a3,b3,c3,t;a=dis(p[0],p[1]),b=dis(p[0],p[2]),c=dis(p[0],p[3]);a2=dis(p[1],p[0]),b2=dis(p[1],p[2]),c2=dis(p[1],p[3]);a3=dis(p[2],p[0]),b3=dis(p[2],p[1]),c3=dis(p[2],p[3]);if(fun(a,b,c)&&fun(a2,b2,c2)&&fun(a3,b3,c3)){int ab,bc,ac;ab=cheng(p[0],p[1],p[2]);bc=cheng(p[1],p[2],p[0]);ac=cheng(p[2],p[0],p[1]);if(ab==0||bc==0||ac==0) return 1;}return 0; } int main() {int i,k,tcase;scanf("%d",&tcase);for(k=1;k<=tcase;k ){for(i=0;i<4;i ) scanf("%d%d%d",&p[i].x,&p[i].y,&p[i].z);printf("case #%d: %s\n",k,(judge())?"yes":"no");}return 0; }

 

转载于:https://www.cnblogs.com/gaojupeng/p/4438039.html

总结

以上是尊龙游戏旗舰厅官网为你收集整理的[bc]four inages strategy(三维空间判断正方形)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得尊龙游戏旗舰厅官网网站内容还不错,欢迎将尊龙游戏旗舰厅官网推荐给好友。

网站地图