德萊聯盟(判斷線段是否相交)

2021-07-02 19:35:23 字數 1197 閱讀 2266

時間限制:

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

樣例輸出

interseetionnot interseetion

參考了這個部落格,寫的很好:

#includeusing namespace std;

int px(double x1,double y1,double x2,double y2 )

bool dy(double x,double y,double x1,double y1,double x2 ,double y2)

int main()

{ int t;

cin>>t;

double x1,x2,x3,x4,y1,y2,y3,y4;

while(cin>>x1>>y1>>x2>>y2>>x3>>y3>>x4>>y4)

{ int s1,s2,s3,s4;

s1 = px(x4-x1,y4-y1,x2-x1,y2-y1);

s2 = px(x3-x1,y3-y1,x2-x1,y2-y1);

s3 = px(x1-x3,y1-y3,x4-x3,y4-y3);

s4 = px(x2-x3,y2-y3,x4-x3,y4-y3);

int a,b;

if(s1==0 || s2==0 || s3==0 ||s4 == 0){

if(s1 ==0){

if(dy(x4,y4,x1,y1,x2,y2)) cout<<"interseetion"<

德萊聯盟 判斷線段相交

時間限制 1000 ms 記憶體限制 65535 kb 難度 1 描述 歡迎來到德萊聯盟。德萊文。德萊文在逃跑,卡茲克在追。我們知道德萊文的起點和終點座標,我們也知道卡茲克的起點和中點座標,問 卡茲克有可能和德萊文相遇嗎?並且保證他們走的都是直線。輸入 幾組資料,乙個整數t表示t組資料 每組資料 8...

德萊聯盟(判斷兩點是否相交 nyist)

描述 歡迎來到德萊聯盟。德萊文。德萊文在逃跑,卡茲克在追。我們知道德萊文的起點和終點座標,我們也知道卡茲克的起點和中點座標,問 卡茲克有可能和德萊文相遇嗎?並且保證他們走的都是直線。輸入 幾組資料,乙個整數t表示t組資料 每組資料 8個實數,分別表示德萊文的起點和終點座標,以及卡茲克的起點和終點座標...

C 判斷線段是否相交

c 判斷線段是否相交 線段是否相交,一種是從幾何上就是判斷兩個線段有沒有交點,還有一種是通過向量叉乘 也就是向量積 來判斷。因為向量叉乘的結果是乙個垂直於原來兩個向量的新向量,可以簡單的理解為垂直於原來兩向量所在平面的向量。我們來看圖。線段是否相交 線段p1p2的p1點 線段p1p2的p2點 線段q...