51nod 1265 四点共面——计算几何
题目链接:http://www.51nod.com/Challenge/Problem.html#!#problemId=1265
以其中某一点向其它三点连向量,若四点共面,这三个向量定义的平行六面体的体积为零。
而这个体积等于这三个向量的混合积,所以只要验证混合积是否为零。
|ax ay az|
而混合积(a,b,c)=(a×b)·c= |bx by bz|
|cx cy cz|
证明也不难:https://baike.baidu.com/item/%E6%B7%B7%E5%90%88%E7%A7%AF/10564182?fr=kg_general
所以只需验证ax*by*cz+ay*bz*cx+bx*cy*az-az*by*cx-ay*bx*cz-ax*bz*cy的值即可。
再提一句:空间向量a、b的叉积:a×b=(ax,ay,az)×(bx,by,bz)=(ay*bz-az*by , az*bx-ax*bz , ax*by-ay*bx)
#include<cstdio>
using namespace std;
struct Point{ int x,y,z; }p[];
int main(){
int t;
int x,y,z;
int ax,ay,az,bx,by,bz,cx,cy,cz;
scanf("%d", &t);
for(int k = ; k <= t; ++k){
scanf("%d%d%d",&x,&y,&z);//第一个点坐标
for(int i = ; i < ; ++i)//后三个点坐标
scanf("%d%d%d",&p[i].x,&p[i].y,&p[i].z);
///构建向量
ax=p[].x-x; ay=p[].y-y; az=p[].z-z;
bx=p[].x-x; by=p[].y-y; bz=p[].z-z;
cx=p[].x-x; cy=p[].y-y; cz=p[].z-z;
///混合积
if(ax*by*cz+ay*bz*cx+bx*cy*az-az*by*cx-ay*bx*cz-ax*bz*cy == )
puts("Yes");
else puts("No");
}
return ;
}
51nod 1265 四点共面——计算几何的更多相关文章
- 51Nod 1265 四点共面(计算几何)
1265 四点共面 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 给出三维空间上的四个点(点与点的位置均不相同),判断这4个点是否在同一个平面内(4点共线也算共面). ...
- 51nod 1265 四点共面【计算几何+线性代数】
1265 四点共面 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 给出三维空间上的四个点(点与点的位置均不相同),判断这4个点是否在同一个平面内(4点共 ...
- 51Nod:1265 四点共面
计算几何 修改隐藏话题 1265 四点共面 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 给出三维空间上的四个点(点与点的位置均不相同),判断这4个点 ...
- 51nod1265 四点共面
题目链接:51nod 1265 四点共面 四个点构成的三个向量a,b,c共面的充要条件是存在不全为零的实数x,y,z满足x*a+y*b+z*c=0,然后想到线代了.. 其实就是三个向量的混合积为0:( ...
- 51Nod-1265 四点共面
51Nod 1265 : http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1265 1265 四点共面 基准时间限制:1 秒 ...
- 51nod1265四点共面
1265 四点共面 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 给出三维空间上的四个点(点与点的位置均不相同),判断这4个点是否在同一个平面内(4点共线也算共面).如 ...
- (四点共面) 51nod1265 四点共面
1265 四点共面 1 秒 131,072 KB 0 分 基础题 给出三维空间上的四个点(点与点的位置均不相同),判断这4个点是否在同一个平面内(4点共线也算共面).如果共面,输出"Ye ...
- 51nod--1265 四点共面 (计算几何基础, 点积, 叉积)
题目: 1265 四点共面 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 给出三维空间上的四个点(点与点的位置均不相同),判断这4个点是否在同一个平面内(4 ...
- 51nod1265判断四点共面
1265 四点共面 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 给出三维空间上的四个点(点与点的位置均不相同),判断这4个点是否在同一个平面内(4点共 ...
随机推荐
- Modulation of Lipid Metabolism by Celastrol (文献分享一组-赵倩倩)
文献名:Modulation of Lipid Metabolism by Celastrol (雷公藤红素对脂质代谢调节作用的研究) 期刊名:Journal of Proteome Research ...
- 阿里巴巴开源性能监控神器Arthas初体验
如果问性能测试中最难的是哪部分,相信很多人会说“性能调优”.确实是这样,性能调优是一个非常复杂.技术含量很高的工作.涉及到的知识面很广.以我多年从业经验来看,在企业里,大多数的性能调优都是由开发架构师 ...
- C#递归得到特定文件夹下问件
List<String> listFile = new List<String>(); public void director(string path) { //绑定到指定的 ...
- ISCC 2018线上赛 writeup
今天有机会去ISCC2018参加了比赛,个人的感受是比赛题目整体难度不高,就是脑洞特别大,flag形式不明确,拿到flag后也要猜测flag格式,贼坑 废话不多说,以下是本人的解题思路 MISC 0x ...
- CF1076D Edge Deletion
洛谷传送门 cf传送门 这道题作为div.2的D题,被我一眼秒了我觉得十分荣幸,然后就开始写,然后就写了好久. AC之后看网上的题解,发现好多最短路树的,猛然发现我写的好复杂啊,结果还看到了直接一遍d ...
- cmd 查看端口占用情况
netstat -nao|findstr 端口号 打开任务管理器查看
- PostgreSQL-8-数据合并
-- 1.JOIN与UNION的区别详解 CREATE TABLE t1(id int,value1 text); ,,,'c'); -- 创建表格t1 CREATE TABLE t2(id int, ...
- 关于java中的不可变类(转)
如何在Java中写出Immutable的类? 要写出这样的类,需要遵循以下几个原则: 1)immutable对象的状态在创建之后就不能发生改变,任何对它的改变都应该产生一个新的对象. 2)Immuta ...
- [译]Understanding ECMAScript6 迭代器与生成器(未完)
迭代器在许多编程语言中被作为一种更易处理数据集合的方式被使用.在ECMAScript6中,JavaScript添加了迭代器,将其作为此语言的一个重要特征.当再加上新的方法和新的集合类型(比如集合与映射 ...
- idea中deployment点击加号没有出现artifact
转载 在主页面打开ProjectStructure,点击图示的按钮或是按ctrl+shift+alt+s快捷键 打开ProjectStructure后,按照图示依次点击Facets->+号,在弹 ...