滑雪
Description
Bessie和其他一些人去滑雪。Bessie發(fā)現(xiàn)她自己站在一塊R*C(1<=R,C<=100)的區(qū)域中,區(qū)域中的每一塊都有一個(gè)高度值E_ij(-25<=E_ij<=25)。為了參加大家的聚會(huì),Bessie想要盡快到達(dá)右下角。Bessie每一步只能向正東,正西,正南,正北前進(jìn)一步。Bessie以初速度V(1<=V<=1,000,000)前進(jìn),她發(fā)現(xiàn)了一個(gè)她的速度和高度的關(guān)系。當(dāng)Bessie從高度A移動(dòng)到高度B時(shí),他的速度就乘上了一個(gè)數(shù)2^(A-B)。Bessie移動(dòng)一步的速度取決于她在前一格時(shí)的速度。 請(qǐng)找出Bessie移動(dòng)所需的最小時(shí)間。Input
第1行:3個(gè)用空格隔開(kāi)的整數(shù):V,R,C,分別表示Bessie的初速度和區(qū)域的長(zhǎng)度和寬度
第2 - R+1行:以矩陣的形式表示該區(qū)域中各塊的高度。
Output
輸出一個(gè)實(shí)數(shù)(保留2位小數(shù)),表示Bessie達(dá)到目的地最少需要的時(shí)間。
Sample Input
1 3 3
1 5 3
6 3 5
2 4 3
Sample Output
29.00
Data Constraint
Hint
【樣例說(shuō)明】
Bessie的最佳路徑是:
(1,1) 時(shí)間 0 速度 1
(1,2) 時(shí)間 1 速度 1/16
(2,2) 時(shí)間 17 速度1/4
(3,2) 時(shí)間 21 速度1/8
(3,3) 時(shí)間 29 速度 1/4
.
.
.
.
.
.
分析
bfs
注意精度!!!!!!!!!!!!
.
.
.
.
.
.
.
程序:
const px:array[1..4]of longint=(0,0,1,-1); py:array[1..4]of longint=(1,-1,0,0); var i,j,l,r,c,v,x,y:longint; a:array[0..105,0..105]of longint; s:array[0..1000005,1..2]of longint; t:array[0..1000005]of double; f:array[0..105,0..105]of double; bz:array[0..105,0..105]of boolean; w:array[-50..50]of double; ans:double; function check(x,y:longint):boolean; beginif (x=0)or(y=0)or(x>r)or(y>c) then exit(true);exit(false); end;procedure bfs; beginf[1,1]:=0;s[1,1]:=1;s[1,2]:=1;t[1]:=v;i:=0;j:=1;while i<>j dobegini:=(i mod 1000001)+1;for l:=1 to 4 dobeginx:=s[i,1]+px[l];y:=s[i,2]+py[l];if check(x,y) then continue;if 1/t[i]+f[s[i,1],s[i,2]]<f[x,y] thenbeginf[x,y]:=1/t[i]+f[s[i,1],s[i,2]];ans:=t[i]*(w[a[s[i,1],s[i,2]]-a[x,y]]);j:=(j mod 1000001)+1;s[j,1]:=x;s[j,2]:=y;t[j]:=ans;end;end;end; end;beginassign(input,'cowski.in');reset(input);assign(output,'cowski.out');rewrite(output);readln(v,r,c);for i:=1 to r dobeginfor j:=1 to c doread(a[i,j]);readln;end;w[0]:=1;for i:=-1 downto -50 dow[i]:=w[i+1]/2;for i:=1 to 50 dow[i]:=w[i-1]*2;fillchar(f,sizeof(f),127);bfs;write(abs((f[r,c]-5.51*1e-11)):0:2);close(input);close(output); end.轉(zhuǎn)載于:https://www.cnblogs.com/YYC-0304/p/9499951.html
總結(jié)