德莱联盟

时间限制:1000ms  |  内存限制:65535KB
难度:1
描述

欢迎来到德莱联盟。。。。

德莱文。。。

德莱文在逃跑,卡兹克在追。。。。

我们知道德莱文的起点和终点坐标,我们也知道卡兹克的起点和中点坐标,问:卡兹克有可能和德莱文相遇吗?,并且保证他们走的都是直线。

输入
几组数据,一个整数T表示T组数据
每组数据 8个实数,分别表示德莱文的起点和终点坐标,以及卡兹克的起点和终点坐标
输出
如果可能 输出 Interseetion,否则输出 Not Interseetion
样例输入
2
-19.74 7.14 22.23 -27.45 -38.79 -5.08 47.51 34.01
-8.61 9.91 -32.47 6.47 -3.81 -16.1 7.82 -6.37
样例输出
Interseetion
Not Interseetion
#include<cstdio>
#include<cstdlib>
#include<cstring>
#define eps 1e-10
using namespace std;
struct point{double x,y;
};
struct Node{point a,b;
}A[2];
double MIN(double a,double b){return a<b?a:b;
}
double MAX(double a,double b){return a>b?a:b;
}
bool judge(int a,int b){if(MIN(A[a].a.x,A[a].b.x)>MAX(A[b].a.x,A[b].b.x)||MIN(A[a].a.y,A[a].b.y)>MAX(A[b].a.y,A[b].b.y)||MIN(A[b].a.x,A[b].b.x)>MAX(A[a].a.x,A[a].b.x)||MIN(A[b].a.y,A[b].b.y)>MAX(A[a].a.y,A[a].b.y))return false;double h,i,j,k;h=(A[a].b.x-A[a].a.x)*(A[b].a.y-A[a].a.y)-(A[a].b.y-A[a].a.y)*(A[b].a.x-A[a].a.x);i=(A[a].b.x-A[a].a.x)*(A[b].b.y-A[a].a.y)-(A[a].b.y-A[a].a.y)*(A[b].b.x-A[a].a.x);j=(A[b].b.x-A[b].a.x)*(A[a].a.y-A[b].a.y)-(A[b].b.y-A[b].a.y)*(A[a].a.x-A[b].a.x);k=(A[b].b.x-A[b].a.x)*(A[a].b.y-A[b].a.y)-(A[b].b.y-A[b].a.y)*(A[a].b.x-A[b].a.x);return h*i<=eps&&j*k<=eps;
}
int main()
{int t,i,j;scanf("%d",&t);while(t--){scanf("%lf%lf%lf%lf",&A[0].a.x,&A[0].a.y,&A[0].b.x,&A[0].b.y);scanf("%lf%lf%lf%lf",&A[1].a.x,&A[1].a.y,&A[1].b.x,&A[1].b.y);//A[1].b.x=A[1].b.x*2-A[1].a.x;//A[1].b.y=A[1].b.y*2-A[1].a.y;if(judge(0,1))printf("Interseetion\n");else{printf("Not Interseetion\n");}}return 0;
}

nyoj1016德莱联盟【判断两线段是否相交】相关推荐

  1. python判断两线段是否相交_c语言 判断两直线段是否相交

    转了多人的放到一起比较!! //功能:求点在有向直线左边还是右边 //返回:0共线.1左边.-1右边 intleft_right(pointa,pointb,doublex,doubley) { do ...

  2. 德莱联盟[判断线段相交]

    德莱联盟 时间限制:1000 ms  |  内存限制:65535 KB 难度:1 描述 欢迎来到德莱联盟.... 德莱文... 德莱文在逃跑,卡兹克在追.... 我们知道德莱文的起点和终点坐标,我们也 ...

  3. NYOJ1016:德莱联盟(判线段相交)

    德莱联盟 时间限制:1000ms  |  内存限制:65535KB 难度:1 描述 欢迎来到德莱联盟.... 德莱文... 德莱文在逃跑,卡兹克在追.... 我们知道德莱文的起点和终点坐标,我们也知道 ...

  4. [GIS算法] 判断两线段是否相交的四种方案(快速排斥+跨立实验、参数方程求解、凸多边形、点在线的哪一侧)-附C语言实现

    文章目录 算法一:快速排斥+跨立试验 代码 算法二:参数方程求解 代码 算法三:凸多边形 算法四:点在线的哪一侧 算法一:快速排斥+跨立试验 重点掌握 [原理]利用矢量的叉乘 [图解] 代码 #def ...

  5. hdu 1086(判断两线段是否相交)

    题意:给出一些线段,问有多少个交点. 解题思路:这里实际就是一个线段相交的模型,下面这个图给出了思路. 如果两线段相交,则两线段必然相互跨立对方.若P1P2跨立Q1Q2 ,则矢量 ( P1 - Q1 ...

  6. 判断两线段是否相交——快速排斥与跨立实验

    如何判断两条线段是否相交呢?如果是我们去解决这个问题,用眼睛很容易就看出来了,但是如果用计算机来解决这个问题,该怎么办呢?下面介绍两个方法,这两个方法结合起来就能完美解决这个问题了. 一.快速排斥 对 ...

  7. java判断两线段是否相交

    首先推荐java的Line2D类自带方法linesIntersect java.awt.geom.Line2D.linesIntersect(x1, y1, x2, y2, x3, y3, x4, y ...

  8. 判断两线段是否相交,并求交点

    首先, 上个示意图. 根据图示, 线段a表示为端点a1和a2, 线段b表示为端点b1和b2. 为了利用向量的叉乘关系, 将线段的端点看成四个向量, 下面用粗体表示向量. 根据向量运算可知 a=a2-a ...

  9. NYOJ 1016 德莱联盟(计算几何 线段相交判定)

    判断两条线段是否相交. 在判断两条线段是否相交时,我们常用快速排斥实验跟跨立实验这两种方法,快速排斥实验能很快的排除掉线段不相交的情况,但并没法成为线段相交的充要条件,在快速排斥实验之后接上跨立实验就 ...

最新文章

  1. 《流畅的Python》一副扑克牌中的难点
  2. 计算机视觉编程——OpenCV
  3. Unity,WebGL, 页面JS调用Unity方法
  4. 你会因为什么原因而离职
  5. CSS3中弹性盒布局的最新版
  6. 信息学奥赛一本通(1235:输出前k大的数)——堆排序
  7. RabbitMQ(四) Work模式下的消息产生以及消费代码实现示例
  8. 如何通过“随航”将iPad用作苹果Mac的第二个显示屏?
  9. IE 下 telerik RadAjaxManager 多次请求,LoadingPanel 点击消失
  10. 通用计算机dsp采用,一种基于FPGA+DSP的通用飞控计算机平台设计
  11. 芯原股份正式加入UCIe产业联盟
  12. java读取properties配置文件路径
  13. 三因素三水平正交表l9_正交试验在减水剂中的应用
  14. 智能车改舵机中值步骤_智能车制作全过程(飞思卡尔)
  15. android三指截屏apk,手机也能截长图!360 OS三指截屏详解
  16. 20170627——【肿瘤】肿瘤的异质性
  17. Amoeba配置读写分离
  18. 要有遥不可及的梦想,也要有脚踏实地的本事
  19. 服务器 多显卡 显示器,一台主机接多个显示器,居然有三种方法实现,提高工作效率的神器...
  20. Excel如何给单元格添加下拉选项?实用小技巧!怎样给单元格加入下拉列表?

热门文章

  1. GJM : AlloyTouch实战--60行代码搞定QQ看点资料卡
  2. php是什么电器元件,看完这个保证你认识“贴片电路板上”的每一个电子元件
  3. [024] 欢迎大家关注我的微信公众帐号小q机器人(xiaoqrobot)
  4. 前端 - bootstrap树形菜单
  5. Fuzzy C-Means(模糊C均值聚类)算法原理详解与python实现
  6. Windows10下WSL的配置与使用
  7. c语言开发简单小游戏扫雷,利用C语言开发一个扫雷小游戏
  8. win7系统盘瘦身四大招:
  9. java 奇数trun_N26-博客作业-week15
  10. python 写入Excel