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的瘋狂男孩擁有核 想要毀滅我們的世界。幸運的是,我們神秘的間諜網路已經得到了他的計畫。現在,我們需要阻止它。但這項艱鉅的任務顯然並不容易。首先,我們知道,核 的作業系統由一些連...