啥也不说了,直接看图吧……

代码如下:

#include<stdio.h>
#include<iostream>
#include<math.h>
using namespace std;
#define LL long long
struct point
{LL x,y,z;
};
bool fun(point a,point b,point c,point d)
{point p1, p2,p3;p1.x = a.x-d.x;p1.y = a.y-d.y;p1.z = a.z-d.z;p2.x = a.x-c.x;p2.y = a.y-c.y;p2.z = a.z-c.z;p3.x = b.x-d.x;p3.y = b.y-d.y;p3.z = b.z-d.z;point w1,w2;w1.x = p1.y*p2.z-p2.y*p1.z;w1.y = p1.z*p2.x-p2.z*p1.x;w1.z = p1.x*p2.y-p2.x*p1.y;w2.x = p1.y*p3.z-p3.y*p1.z;w2.y = p1.z*p3.x-p3.z*p1.x;w2.z = p1.x*p3.y-p3.x*p1.y;if(w1.x*w2.y==w2.x*w1.y && w1.z*w2.y==w2.z*w1.y)return true;return false;
}
LL 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);
}
bool Dis(point a,point b,point c)
{if(dis(b,c)>=dis(a,b)+dis(a,c))return true;return false;
}
bool T(point a,point b,point c,point d)
{point p1, p2;p1.x = a.x-b.x;p1.y=a.y-b.y;p1.z=a.z-b.z;p2.x=c.x-d.x;p2.y=c.y-d.y;p2.z=c.z-d.z;if(p1.x*p2.x+p1.y*p2.y+p1.z*p2.z == 0){return true;}else return false;
}
int main()
{
//    freopen("J.in.cpp","r",stdin);
    point a, b, c, d;scanf("%I64d%I64d%I64d",&a.x,&a.y,&a.z);scanf("%I64d%I64d%I64d",&b.x,&b.y,&b.z);scanf("%I64d%I64d%I64d",&c.x,&c.y,&c.z);scanf("%I64d%I64d%I64d",&d.x,&d.y,&d.z);if(T(a,b,c,d) && fun(a,b,c,d) && Dis(b,a,d) && Dis(c,a,d)){printf("Valid\n");}else printf("Invalid\n");return 0;
}

转载于:https://www.cnblogs.com/jifahu/p/5773434.html

URAL 2099 Space Invader题解 (计算几何)相关推荐

  1. 暑假集训#2 div1 J 四点直角 J - Space Invader 四点共面+跨立实验

    题意:给你四个点,判断能否先依次通过A,B两点,然后再在某个地方只进行一次直角转弯再一次经过C,D两点: #include <iostream> #include <cstdio&g ...

  2. URAL 1028 数星星 题解

    URAL 1028 数星星 题解 URAL 1028 题目 Astronomers often examine star maps where stars are represented by poi ...

  3. python:实现Space Invader太空入侵者游戏(附完整源码)

    python:实现Space Invader太空入侵者游戏 import pygame import random import math from pygame import mixer# init ...

  4. U3D开发Space Invader中的一些细节

    总结一下之前在实验开发Space Invader时遇到的一些问题和点子. 玩家的移动和射击可以参考其他博客,属于比较简单的逻辑. 我的素材是自己画的,需要的话我在下面放一下素材图,大家也可以考虑加上颜 ...

  5. 2019 ICPC Asia Nanjing Regional I. Space Station题解

    文章目录 [题目链接] [前言] [题目大意] [解题思路] 一.优先暴力 二.记忆化 三.unordered_map以及思维优化 四.乘法逆元(拓展内容) [后记] [题目链接] https://n ...

  6. 洛谷P4766 [CERC2014]Outer space invaders题解

    https://www.luogu.com.cn/problem/P4766 description: 有 nnn 个外星人进攻,第 iii 个进攻的外星人会在时间 aia_iai​ 出现,距离你的距 ...

  7. basicdatasource默认_BasicDataSource的配置参数

    参数 描述 username 传递给JDBC驱动的用于建立连接的用户名 password 传递给JDBC驱动的用于建立连接的密码 url 传递给JDBC驱动的用于建立连接的URL driverClas ...

  8. 2018-2019 ACM—ICPC SEERC 题解

    2018 - 2019 SEERC 题解 比赛发出来太新了,网上根本就搜不到题解,补题补的太难受了. 在这里分享一篇我自己写的题解,也方便别人补题. 题目链接 http://codeforces.co ...

  9. 【bzoj2338】[HNOI2011]数矩形 计算几何

    题目描述 题解 计算几何 由于对角线平分且相等的四边形是矩形,因此我们可以把每条对角线存起来,按照对角线长度和中点位置为关键字排序,这样对于每个相同长度和中点的对角线就排到了一起. 于是对于每段可能形 ...

最新文章

  1. 【Python-ML】SKlearn库特征选择SBS算法
  2. Java图片文本识别工具Eye实现(不支持中文)
  3. ios--成员变量与属性的区别
  4. python 爬视频下载_Python爬虫进阶之爬取某视频并下载的实现
  5. Android安全与逆向之Dex动态加载
  6. js alert追加html,利用JQ来美化Js的alert弹出框
  7. Android实现两台手机屏幕共享和远程控制
  8. 颜晖c语言设计答案,c语言程序设计 (何钦铭 颜晖 著)课后习题答案
  9. FFT蝶形算法,IFFT
  10. Android smali语法
  11. flash player 9 安装错误:您尝试安装的adobeflashplayer版本不是最新版本
  12. Pika的设计及实现
  13. ajax把参数放body里,ajax请求-jquery发送ajax请求,参数怎么放到http请求的body里面...
  14. 网络WireShark进行抓包
  15. [原创] Bandwagon 追加 swap 大小
  16. 抖音爆火李峋同款爱心代码,简单附带教程,还有烟花代码,手残党也能学会!!
  17. 约瑟夫问题(c语言)
  18. 天才小毒妃 第912章 坑了一大笔
  19. 如何利用Slack客户端漏洞窃取Slack用户下载的所有文件
  20. excel表格横向纵向变换_什么是报表工具?和 EXCEL 有什么区别?

热门文章

  1. JAVA语言:利用递归方法判断字符串是否为回文
  2. 程序员如何走向自由职业
  3. js操作元素:改变元素内容有两种方式: interText 和 innerHTML的区别, 常用的元素的属性操作, 仿电脑系统时间问好 ,表单元素的属性操作 ,案例:仿京东显示隐藏密码 ,样式属性操作
  4. Git忽略文件.gitignore规则详解
  5. java常用开发286个英语单词汇总
  6. modbus是什么玩意儿的 C#实现ModbusRTU读取线圈状态功能0x01
  7. Spring:(二)IOC
  8. 基于51单片机的老人防跌倒报警器体温检测GSM短信上报原理图方案设计
  9. Dart Flutter 教程【Dart部分】
  10. plotly入门(散点图和曲线图)