zoj 2325 線段相交

2021-05-26 20:54:53 字數 722 閱讀 8515

本題可以直接排序再算可以看到全部的那段線段長度,也可以用相似三角形來做,我選擇後者

具體方法:先把障礙物按x從小到大排序,然後就遍歷,令top=l.x1,記得要先連線a[i].x1與hou.x2,再用相似三角形求出要求區域的右端點,在類似的求出區域的左端點,要注意不能超過l.x2,因為最後還要l.x2-top,至於l.x1就不用討論,不影響結果,具體看**

#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;

#define ll long long

#define pi acos(-1)

#define n 50010

#define inf 9999999999

#define eps 1e-8

struct point

a[1000],hou,l;

double f(double x,double h1,double h2)

bool cmp(point s,point t)

if(top0)

printf("%.2f\n",ans);

else

printf("no view\n");

}return 0;

}

zoj 1158 判斷2線段完全相交

乙個正方形的古老墓園,有n面牆,牆的端點都在正方形的邊上。已知墓碑的地點 x,y 問從外面一直到達墓碑至少要鑿開幾個門,而且規定門只能鑿在當前點段的中點。思路很巧妙,因為從乙個點到終點不可能 繞過 圍牆,只能傳過去,所以門是否開在中點是無所謂的,只要求四周線段中點到終點的線段與牆的最少交點個數即可。...

線段是否相交

給定兩條線段,判斷是否相交 include include use sort include use fabs using namespace std struct point 點座標 struct line 線段屬性 void isintersect line line1,line line2 i...

線段相交判斷

1.快速排斥實驗。設以線段p1p2為對角線的矩形為r,設以線段q1q2為對角線的矩形為t,如果r和t不相交,則兩線段不相交。所以p1p2和q1q2相交的必要條件是以他們為對角線的矩形相交,即 min p1.x,p2.x max q1.x,q2.x min q1.x,q2.x max p1.x,p2....