叉積在ACM中的應用

2021-08-19 07:24:38 字數 2572 閱讀 3628

若o

a →=

(x1,

y 1)

ob →

=(x2

,y 2

) oa→=(x1,y1)  ob→=(x2,y2)

定義叉積:oa

如圖是一種簡單情況,叉積表示的面積即最大的矩形面積減去p 

1p 2

t 3 

p1p2t3

所構成的矩形面積。又t 

4=s 

4 t4=s4

,即要證

2(t1+t

2+t3)=

s 1+

t 1+

s 2+

t 2 

2(t1+t2+t3)=s1+t1+s2+t2

又已知s 

1+p 

1=t 

1+t 

3+p 

2,an

ds 2

+p 2

=t 2

+t 3

+p 1

s1+p1=t1+t3+p2,and s2+p2=t2+t3+p1

兩式左右相加即證。

另外的情況也可利用面積的加減證明。

已知直線上的兩點s、e,可以求出ax+by+c=0的引數

a = s.y-e.y;

b = e.x-s.x;

c = s× 

×e;在直線上取兩點p,q,構成直線的方向向量pq

→pq→。需要判斷的點a構成ap

→、aq

→ap→、aq→

兩個向量。則規定ap

→×aq

→ap→×aq→

的符號反映了點與直線的相對位置。當值為0時a在直線pq上。

poj 2318

2398

在直線外的兩個點分別作應用1中的叉積操作,若得到的結果同號則在同側,異號則在異側。

poj 3304:原題等價為是否存在一條直線(投影路徑)與所有的線段相交

poj 1039:求從管子的一端到最遠到達**。暴力列舉所有可能的光線方向,與管子端點相交、與管重合均可穿過。需注意光線雖與管子不相交但超出管子的情況。

有以下兩種方法。

容易理解的是利用性質2,得到直線方程a1

x+b1

y+c1

=0與a

2x+b

2y+c

2=0 

a1x+b1y+c1=0與a2x+b2y+c2=0。當a

1b2=

a2b1

時a1b2=a2b1時

,直線平行(特判重合的情況);否則兩直線相交,直接解得x=

−c1b

2+c2

b1a1

b2−a

2b1 

x=−c1b2+c2b1a1b2−a2b1

分別在直線上取兩點,類似於應用2,將其中一條作為基準直線,得到兩個叉積結果。若都為0,則兩直線重合。若兩者不為0且值相等,則兩直線平行。否則相交。

用叉積,而不是求出斜率,這樣能避免斜率不存在的情況。

poj 1269:過濾掉前兩種情況後,求直線的交點座標時再列出直線方程(ax+by+c=0)求解。

線段1、2所在的直線為3、4,則當1、4與2、3均相交時可得兩線段相交,否則不相交。也可以根據題目條件簡化其一,視條件而定。 注意

:要做四

組初始判

斷避免兩

線段共線

但不相交

的誤判。

注意:要做四組初始判斷避免兩線段共線但不相交的誤判。

poj 1556:列舉任意兩個端點是否存在直線通道時,需判斷該線段與其餘的豎直線段是否相交。

poj 2653:該break時就break,否則t無休……

poj 3449:差不多可以當作模擬題來做。

cf 589d:可以抽象成線段來做。

順次給出多邊形的點

判斷其是否構成凸包。由於不知道是順時針還是逆時針給出的,所以先記錄一組(p

1−p0

)×(p

2−p1

) (p1−p0)×(p2−p1)

的符號作為基準。之後每組(p

i+1−

pi)×

(pn+

2−pn

+1) 

(pi+1−pi)×(pn+2−pn+1)

的符號都與之比對,若異號,則不為凸包。

注意:若題意允許三點共線,則先找到第乙個非0的符號,再進行判斷。並且允許有0存在。

先特判點o是否在邊上(可利用叉積為零)。

將點o作為頂點,順次連線多邊形的端點,得到n個角度。用叉積順次得到各個角度的符號,若全部同號則點在凸多邊形內。否則不在凸多邊形內。

poj 1584:先判斷給出的點是否構成凸包,再判斷圓心是否在凸包內,再看是否能容納下這個圓。

叉積在ACM中的應用

若 定義叉積 x1y2 x2y1 如圖是一種簡單情況,叉積表示的面積即最大的矩形面積減去 p1p2t3所構成的矩形面積。又t4 s4,即要證2 t1 t2 t3 s1 t1 s2 t2,又已知s1 p1 t1 t3 p2,and s2 p2 t2 t3 p1兩式左右相加即證。另外的情況也可利用面積的...

向量外積和內積在程式設計中的應用

先介紹向量外積 向量ab 向量ac ab ac sin 顯然結果的絕對值為 abc面積的2倍,因此利用向量外積可以求任意多邊形的面積 向量的外積 double det int a,int b,int c 1 結果 0,說明三點共線 2 結果 0,說明向量ac在向量ab的逆時針方向 3 結果 0,說明...

ACM計算幾何 叉積應用

目錄 定義性質 應用判斷點與直線的相對位置 判斷線段與直線的位置關係 判斷直線與直線的位置關係 判斷線段與線段的位置關係 判斷多邊形是否是凸包 判斷點是否在凸多邊形內 若 oa x1,y1 o b x2,y 2 定義叉積 oa 如圖是一種簡單情況,叉積表示的面積即最大的矩形面積減去p1 p2t3 所...