Newcoder 128 D 最短路2(計算幾何)

2021-08-28 17:59:58 字數 1883 閱讀 1135

description

假設排球場是個無限大的網格,即對於任意的整數z

zz,都有x=z

x=zx=

z和y=

zy=z

y=z的直線存在,同學a(a

x,ay

)a(a_x,a_y)

a(ax​,

ay​)

和同學b(b

x,by

)b(b_x,b_y)

b(bx​,

by​)

站在整點座標(即ax,

ay,b

x,by

a_x,a_y,b_x,b_y

ax​,ay

​,bx

​,by

​都是整數)上,這個網格裡面,還有另外一條直線h

hh,用px+

qy=r

px+qy=r

px+qy=

r表示,現在a

aa要走到b

bb所在的位置,他只能沿著網格或者h

hh這條線走,且只能在交點處換路。

求a

aa走到b

bb的最短路長度。

input

輸入的第一行包含乙個整數t

tt,表示測試組數。

每個測試用例前面都有乙個空白行。

每個測試用例由包含整數ax,

ay,b

x,by

a_x,a_y,b_x,b_y

ax​,ay

​,bx

​,by

​和有理數p,q

,r

p,q,r

p,q,r。

( t≤

30,∣a

x,ay

,bx,

by∣≤

1000,∣

p,q∣

≤25,∣

r∣

≤20000

)(t\le 30,|a_x,a_y,b_x,b_y|\le 1000,|p,q|\le 25,|r|\le 20000)

(t≤30,

∣ax​

,ay​

,bx​

,by​

∣≤10

00,∣

p,q∣

≤25,

∣r∣≤

2000

0)output

對於每個測試用例輸出乙個數:表示求a

aa走到b

bb的最短路長度,結果保留三位小數。

sample input

2 0 -1 1 1.0 1.0 1.0

-2 3 4 -1 1.0 -0.1 0.47

sample output

3.414

10.000

solution

方案有兩種,要麼直接沿網格走到b

bb,此時距離為兩點間哈密頓距離,要麼先橫向或縱向走到h

hh處,在h

hh上走到與b

bb同一橫座標或縱座標,第二種方案有四種情況,分別求出更新最優解即可

code

#include#include#includeusing namespace std;

typedef long long ll;

int t;

double x[6],y[6],p,q,r;

double dis(int i,int j)

int main()

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

} return 0;

}

ural Kind Spirits 最短路徑 dp

求從第0層 只有乙個起點 到頂層 有多個點 的最短路 特殊樣例 2 20 這個節點和根不連通12 0 21 1023 0answer 5 這道題可以先建圖再求最短路,也可以用dp dp dp i j 表示到達第i層第j個節點的最短距離,第i層只能從i 1層爬上來,狀態轉移方程 dp i j min ...

codeup 問題 D 最短路徑

題目描述 有n個城市m條道路 n 1000,m 10000 每條道路有個長度,請找到從起點s到終點t的最短距離和經過的城市名。輸入輸入包含多組測試資料。每組第一行輸入四個數,分別為n,m,s,t。接下來m行,每行三個數,分別為兩個城市名和距離。輸出每組輸出佔兩行。第一行輸出起點到終點的最短距離。第二...

D 和諧(最短路 01揹包)

自1945年以來,當美國的曼哈頓專案小組引爆了第一顆核彈時,全球的核 數量急劇增加。如今,fzu的乙個名叫aekdycoin的瘋狂男孩擁有核 想要毀滅我們的世界。幸運的是,我們神秘的間諜網路已經得到了他的計畫。現在,我們需要阻止它。但這項艱鉅的任務顯然並不容易。首先,我們知道,核 的作業系統由一些連...