德莱联盟
时间限制:
1000 ms | 内存限制:
65535 KB
难度:
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
来源
- 原创 上传者
思路:终于ac了。。之前那晚,一直没有ac。。我是用斜率k和截距b做的,看两直线是不是平行,如果平行的话,就不会相遇,如果重合是话,可能相遇,如果是相交的话,也可能会相遇,但是那时候交了不对。。我现在还没有弄出来。。。又换了一个方法,参考博客:
http://blog.csdn.net/LYHVOYAGE/article/details/24601151
my code:
#include<iostream> using namespace std; int main() { int T; double x0,y0,x1,y1,x2,y2,x3,y3; double a,b,c,d; cin>>T; while(T--) { cin>>x0>>y0>>x1>>y1>>x2>>y2>>x3>>y3; a=x0*y1+x1*y2+x2*y0-x1*y0-x0*y2-x2*y1; b=x0*y1+x1*y3+x3*y0-x1*y0-x0*y3-x3*y1; c=x0*y3+x2*y0+x3*y2-x0*y2-x2*y3-x3*y0; d=x1*y3+x2*y1+x3*y2-x1*y2-x2*y3-x3*y1; if(a*b<=0 &&c*d<=0) cout<<"Interseetion"<<endl; else cout<<"Not Interseetion"<<endl; } return 0; }
-
几组数据,一个整数T表示T组数据