欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報邀請碼778899分享:算法 java 蝸牛——藍(lán)橋杯

柚子快報邀請碼778899分享:算法 java 蝸?!{(lán)橋杯

http://yzkb.51969.com/

蝸牛

題目分析

第一個階段定義dp數(shù)組

(1)縮小規(guī)模。我們要從第1根竹竿爬到第n根竹竿,那么規(guī)模就是這n根竹竿,dp[i]表示當(dāng)前爬到了第i根竹竿。

(2)考慮限制。

限制1,只能在x軸或者竹竿上爬行,在x軸上爬行速度為1單位每秒,在竹竿上向上和向下爬行的速度分別為0.7單位每秒和1.3單位每秒。

限制2,在第i和第i+1個竹竿間有傳送門,可以由第i根竹竿高度為

a

i

a_i

ai?的位置

(

x

i

,

a

i

)

(x_i,a_i)

(xi?,ai?),瞬移到第i+1根竹竿高度為

b

i

+

1

b_{i+1}

bi+1?的位置

(

x

i

+

1

,

b

i

+

1

)

(x_{i+1},b_{i+1})

(xi+1?,bi+1?)。

對于一個蝸牛的在第i根竹竿上的位置有兩種狀態(tài),要么是從x軸爬過來的,此時高度為0,要么是從第i-1個竹竿瞬移過來的,此時高度為

b

i

b_i

bi?。需要一個狀態(tài)表示此時蝸牛處在哪個位置,所以

d

p

[

i

]

[

0

]

dp[i][0]

dp[i][0]表示從x軸爬過來的,此時高度為0,

d

p

[

i

]

[

1

]

dp[i][1]

dp[i][1]表示從第i-1個竹竿瞬移過來的,此時高度為

b

i

b_i

bi?。

(3)定義dp數(shù)組

d

p

[

i

]

[

0

]

dp[i][0]

dp[i][0]表示從x軸爬過來的,此時高度為0,花費的時間。

d

p

[

i

]

[

1

]

dp[i][1]

dp[i][1]表示從第i-1個竹竿瞬移過來的,此時高度為

b

i

b_i

bi?,花費的時間。

第二個階段推導(dǎo)狀態(tài)轉(zhuǎn)移方程

d

p

[

i

]

[

0

]

=

m

i

n

(

d

p

[

i

?

1

]

[

0

]

+

x

[

i

]

?

x

[

i

?

1

]

,

d

p

[

i

?

1

]

[

1

]

+

b

[

i

]

/

1.3

)

dp[i][0]=min(dp[i-1][0]+x[i]-x[i-1],dp[i-1][1]+b[i]/1.3)

dp[i][0]=min(dp[i?1][0]+x[i]?x[i?1],dp[i?1][1]+b[i]/1.3)

d

p

[

i

?

1

]

[

0

]

+

x

[

i

]

?

x

[

i

?

1

]

dp[i-1][0]+x[i]-x[i-1]

dp[i?1][0]+x[i]?x[i?1]表示是從第i-1個竹竿從x軸爬過來的,那么消耗的時間就是x軸上的距離

x

[

i

]

?

x

[

i

?

1

]

x[i]-x[i-1]

x[i]?x[i?1]。

d

p

[

i

?

1

]

[

1

]

+

b

[

i

]

/

1.3

dp[i-1][1]+b[i]/1.3

dp[i?1][1]+b[i]/1.3表示是從第i-1個竹竿從x軸瞬移過來的,瞬移到高度為b[i]的地方,那么我要從那個地方下來,那么消耗的時間就是從y軸下來的距離

b

[

i

]

/

1.3

b[i]/1.3

b[i]/1.3。

i

f

(

a

[

i

]

>

b

[

i

]

)

if(a[i]>b[i])

if(a[i]>b[i]),如果是瞬移過來的,我要向上爬。

d

p

[

i

]

[

1

]

=

m

i

n

(

d

p

[

i

]

[

0

]

+

a

[

i

]

/

0.7

,

d

p

[

i

?

1

]

[

1

]

+

(

a

[

i

]

?

b

[

i

]

)

/

0.7

)

dp[i][1]=min(dp[i][0]+a[i]/0.7,dp[i-1][1]+(a[i]-b[i])/0.7)

dp[i][1]=min(dp[i][0]+a[i]/0.7,dp[i?1][1]+(a[i]?b[i])/0.7)

i

f

(

a

[

i

]

<

b

[

i

]

)

if(a[i]

if(a[i]

d

p

[

i

]

[

1

]

=

m

i

n

(

d

p

[

i

]

[

0

]

+

a

[

i

]

/

0.7

,

d

p

[

i

?

1

]

[

1

]

+

(

b

[

i

]

?

a

[

i

]

)

/

1.3

)

dp[i][1]=min(dp[i][0]+a[i]/0.7,dp[i-1][1]+(b[i]-a[i])/1.3)

dp[i][1]=min(dp[i][0]+a[i]/0.7,dp[i?1][1]+(b[i]?a[i])/1.3)

第三個階段寫代碼

(1)dp數(shù)組的初始化

從(0,0)處開始爬,爬到第一個竹竿和第一個竹竿傳送門處的耗時如下。

double[][] dp = new double[n + 1][2];

dp[1][0] = x[1]; // 底端最小用時

dp[1][1] = x[1] + a[1] / 0.7; // 傳送門用時

(2)遞推dp數(shù)組

a.第一層for循環(huán)表示的是規(guī)模

c.第二層for循環(huán)表示的是dp數(shù)組的轉(zhuǎn)移點 只有兩個,不需要用for循環(huán)

(3)表示答案

d

p

[

n

]

[

0

]

dp[n][0]

dp[n][0]

題目代碼

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

int n = sc.nextInt();

int[] x = new int[n+1];

int[] a = new int[n+1];

int[] b = new int[n+1];

for(int i = 1;i<=n;i++){

x[i] = sc.nextInt();

}

for(int i = 1;i

a[i] = sc.nextInt();

b[i+1] = sc.nextInt();

}

double[][] dp = new double[n+1][2];

dp[1][0] = x[1];

dp[1][1] = x[1] + a[1]/0.7;

for(int i = 2;i <= n;i++){

dp[i][0] = Math.min(dp[i-1][1] +b[i]/1.3 ,dp[i-1][0]+x[i]-x[i-1]);

if(a[i]>b[i]){

dp[i][1] = Math.min(dp[i][0] + a[i]/0.7, dp[i-1][1] + (a[i]-b[i])/0.7);

}else {

dp[i][1] = Math.min(dp[i][0] + a[i]/0.7,dp[i-1][1] + (b[i]-a[i]) /1.3);

}

}

System.out.printf("%.2f",dp[n][0]);

sc.close();

}

}

柚子快報邀請碼778899分享:算法 java 蝸?!{(lán)橋杯

http://yzkb.51969.com/

推薦閱讀

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/18928862.html

發(fā)布評論

您暫未設(shè)置收款碼

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄