HDU3400 Line belt 三分法 C語言

2022-08-30 02:03:07 字數 1253 閱讀 7921

題目:

題目大意:給出a、b、c、d四點座標,在ab上速度為p,cd上速度為q, 其他地方速度為r。求從a到d的最短時間

思路:兩個三分巢狀,ab線段三分,內層巢狀cd線段內的三分

提交情況: wa 1次, ac 1次

總結:內層的三分時,每次都要重新賦兩端點的值為c、d的值,因為前一次搜尋結束後,端點值已經改變。就這樣wa了一次……

ac code:

view code

1

#include

<

stdio.h

>

2#include

<

stdlib.h

>

3#include

<

string

.h>

4#include

<

math.h

>56

7#define

eps 1e-689

double

ax, ay, bx, by, cx, cy, dx, dy;

10double

p, q, r;

1112

double

lmidx, lmidy, lmidmidx, lmidmidy, rmidx, rmidy, rmidmidx, rmidmidy;

13double

lax, lay, lbx, lby, rcx, rcy, rdx, rdy;

1415

void

insert()

2021

double

time(

double

x1,

double

y1,

double

x2,

double

y2,

double

v) 27

2829

double

find_r(

double

lx,

double

ly)

43else47}

48return

timem;49}

5051

double

find_l()

64else68}

69return

time_m;70}

7172

intmain()

79return0;

80}

HDU 3400 Line belt 三分套娃

我們假定在 a,b 上選取點 e 在 c,d 上選取點 f 我們的移動路徑是 a e f d 當我們確定 e 點時,不難發現 dis e f f d 是乙個凹函式,具有極小值。當我們確定 f 點時不難發現 dis a e e f 也是乙個凹函式,具有極小值。這兩段函式連線起來,不難發現也是乙個凹函式...

hdu 3400 Line belt 三分套三分)

題意 在乙個二維空間中給出兩條線段ab,cd,線段ab,cd上的運動速度分別為p,q。在這兩條線段之外的空間上運動的速度為r。求從a到d的最短時間。思路 ps 在這種求解方法中,中間運用了比較多的除法,導致精度損失,所以再開方前加乙個eps,防止開方後的值比真實值小。include include ...

hdu 3400 悲劇的三分

題意 就是給你兩條線段ab cd 乙個人在ab上跑速度p,在cd上跑q,在其他地方跑速度是r。問你從a到d最少的時間是好多。解法。比賽時候看題就想起之前hs教我的三分,結果寫了全場的,都沒有過的。哎太挫了。正確解法就是 對ab上三分乙個e點,在cd上三分乙個點f,然後三分完了之後就是最後的結果了的。...