HDU 1086 You can Solve a Geometry Problem too(判斷線段相交)
題目地址:HDU 1086
就這麼一道僅僅判斷線段相交的題目寫了2k多B的代碼。。是不是有點浪費。。。但是我覺得似乎哪裡也優化不了了。。。。
判斷線段相交就是利用的叉積。假如現在兩條線段分別是L1和L2,先求L1和L2兩個端點與L1的某個端點的向量的叉積,如果這兩個的叉積的乘積小於0的話,說明L1在是在L2兩個端點之間的,但此時並不保證一定相交。此時需要用同樣的方法去判斷L2是否在L1的兩個端點之間,如果L2也在L1的兩個端點之間的話,那就足以說明L1與L2相交。但是這題還需要判斷是否端點也相交,當時沒想到這點,導致白白調了一段時間。。至於端點的判斷,我也沒想到什麼好的方法。。就直接暴力判斷4個端點是否是同一點的情況。。
搓代碼如下:
#include
#include
#include
#include
#include
#include
#include
#include
#include