生活随笔
收集整理的這篇文章主要介紹了
杭电1260java实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目鏈接
這題的核心狀態轉移方程是:dp[j]=min(dp[j-1] dan[j],dp[j-2] shuang[j-1]);dan[i]表示第i個人的單票,shuang[i]代表i-1和i兩個人的錢,到第i個人就是要判斷他是單人 前i-1人最少合最少還是他和前一個人雙人票 前i-2個人最少合最少。
附上代碼如下:
import java
.util
.Scanner
;
public class 杭電
1260 {public static void main(String
[] args
) { Scanner sc
=new Scanner(System
.in
); int n
=sc
.nextInt();int value
[]=new int[n
];for(int i
=0;i
<n
;i
){int k
=sc
.nextInt();int dp
[]=new int[k
1];int dan
[]=new int[k
1];for(int j
=1;j
<k
1;j
){dan
[j
]=sc
.nextInt();}if(k
==1) {value
[i
]=dan
[1];}else {int shuang
[]=new int[k
];for(int j
=1;j
<k
;j
){shuang
[j
]=sc
.nextInt();}dp
[1]=dan
[1];for(int j
=2;j
<k
1;j
){dp
[j
]=min(dp
[j
-1] dan
[j
],dp
[j
-2] shuang
[j
-1]);}value
[i
]=dp
[k
];} int hour
=value
[i
]/3600;int min
=value
[i
]600/60;int second
=value
[i
]`
;String timeStr
= unitFormat(hour
8) ":" unitFormat(min
) ":" unitFormat(second
);if((hour
8)/12%2==0){System
.out
.println(timeStr
" am");}else{System
.out
.println(timeStr
" pm");}} }private static String
unitFormat(int i
) { String retStr
= null
;if (i
>= 0 && i
< 10)retStr
= "0" Integer
.toString(i
);elseretStr
= "" i
;return retStr
;}private static int min(int i
, int j
) { return i
<j
?i
:j
;}
}
總結
以上是生活随笔為你收集整理的杭电1260java实现的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。