51nod1265判断四点共面
来源:互联网 发布:淘宝服装模特摄影 编辑:程序博客网 时间:2024/05/18 00:11
1265 四点共面
基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题
收藏
关注
给出三维空间上的四个点(点与点的位置均不相同),判断这4个点是否在同一个平面内(4点共线也算共面)。如果共面,输出"Yes",否则输出"No"。
Input
第1行:一个数T,表示输入的测试数量(1 <= T <= 1000)第2 - 4T + 1行:每行4行表示一组数据,每行3个数,x, y, z, 表示该点的位置坐标(-1000 <= x, y, z <= 1000)。
Output
输出共T行,如果共面输出"Yes",否则输出"No"。
Input示例
11 2 02 3 04 0 00 0 0
Output示例
Yes
题意:中文题
思路:判断四点是否共面问题,点乘和叉乘的应用,任意向量到某一三角形平面的法向量垂直,则四点共面;
还有一种思路是利用行列式:
若行列式为0,则共面;否则不共面。
下面只给出第一种思路的代码:
#include<iostream>#include<stdio.h>using namespace std;typedef long long ll;struct point{ double x, y, z; point operator - (point &o) { point ans; ans.x = this->x - o.x; ans.y = this->y - o.y; ans.z = this->z - o.z; return ans; }};double dot_product(const point &a, const point &b){ return a.x * b.x + a.y * b.y + a.z * b.z;}point cross_product(const point &a, const point &b){ point ans; ans.x = a.y * b.z - a.z * b.y; ans.y = a.z * b.x - a.x * b.z; ans.z = a.x * b.y - a.y * b.x; return ans;}int main(){ point p[4]; int T; for (scanf("%d", &T); T--;) { for (int i = 0; i < 4; ++i) { scanf("%lf%lf%lf", &p[i].x, &p[i].y, &p[i].z); } puts(dot_product(p[3] - p[0], cross_product(p[2] - p[0], p[1] - p[0])) == 0.0 ? "Yes\n" : "No\n"); } return 0;}
阅读全文
1 0
- 51nod1265判断四点共面
- 51NOD1265(四点共面)
- 51nod1265四点共面
- 51nod1265 四点共面
- 【51nod1265】—四点共面
- 判断四点共面
- 判断四点共面
- 判断四点共面
- 判断四点共面模版、
- 51nod_1265 四点共面
- 51nod 1265 四点共面
- 51NOD 1265 四点共面
- 51 nod 1265 四点共面
- [51nod]1265 四点共面
- 51nod 1265 四点共面
- 51NOD-1265四点共面
- 51nod 1265 四点共面
- 51nod 1265 四点共面
- lcd驱动框架
- NYOJ题目36-最长公共子序列(经典动态规划题)
- shell解析命令行的过程以及eval命令
- 初识scala
- Qt+ffmpeg仿格式工厂:编程中遇到的问题(三)
- 51nod1265判断四点共面
- 【github myLocker】select监听多个fd,互斥锁保护终端交互
- 设计模式之---命令模式
- CSS中关于触发BFC
- EasyDSS高性能流媒体服务器前端重构(二) webpack + vue + AdminLTE 多页面提取共用文件, 优化编译时间
- 理解高并发(20).大白话阿姆达尔定律
- 机器学习第九课(bagging,随机森林,样本不均衡)
- 各大公司对于java求职者的要求,你值得一看
- Thinkphp 模型->区间查询