POJ 1039 Pipe (列舉,判線段相交)

2021-06-08 16:27:16 字數 751 閱讀 2030

題目大意:一根由平行線段組成的管道,給出管道的上端折點,下端折點比上端折點高度少1。有一束光從入口射入,求可以照到的最遠位置。

思路:列舉任意兩點,從入口處開始判斷光線是否通過折點出(即與折點豎直線段相交)。記錄最遠位置並判斷,輸出即可。

開始腦抽,總覺的光要沿著入口上下點射入。。放了三天果斷1a了。。

//memory: 252k

//time: 63ms

#include #include #include #define ep 1e-7

#define inf 1e100

using namespace std;

struct point

;point p[50];

struct lineseg

;lineseg l[50];

struct line //線a*x+b*y+c=0

; line( point _a, point _b)

;};double multiply(point sp,point ep,point op)

bool intersect_l(lineseg u,lineseg v)

double lineintersect(lineseg temp,line l2) // 是 l1,l2 返回交點p.x

}} return maxx;

}int main()

double ans=solve(n);

if(abs(ans-p[2*n].x)

poj 1039 Pipe (計算幾何)

題目 劉汝佳的黑書 演算法藝術與資訊學競賽 上的第3章計算幾何初步的例2 管道問題 有一寬度為1的折線管道,上面頂點為 xi,yi 所對應的下面頂點為 xi,yi 1 假設管道都是不透明的,不反射的,光線從左邊入口處的 x1,y1 x1,y1 1 之間射入,向四面八方傳播,求解光線最遠能傳播到 取x...

POJ 1039 Pipe(計算幾何)

有一寬度為1的折線管道,上面頂點為 xi,yi 所對應的下面頂點為 xi,yi 1 假設管道都是不透明的,不反射的,光線從左邊入口處的 x1,y1 x1,y1 1 之間射入,向四面八方傳播,求解光線最遠能傳播到 取x座標 或者是否能穿透整個管道。最遠的直線必定經過乙個上折點和乙個下折點。列舉這兩個點...

POJ 1039 Pipe 線段相交

題目 給乙個管子,有很多轉彎處,問從管口的射線射進去最長能射到多遠 題解 根據黑書,可以證明的是這條光線一定經過了乙個上頂點和下頂點 所以我們列舉每對上下頂點就可以了 include include include include define eps 1e 5 using namespace st...