RUPC2014_Day2_E
- 10. 解法 - 貪欲法
SOLVE()
sort ボートの速さ (→ A[0], A[1], …, A[N-1] とする)
cost = 0, size = N
while size > 3
cost += min( A[0] + 2*A[1] + A[size-1], 2*A0 + A[size-2] + A[size-1] )
size -= 2
if size == 3 then cost += A[0] + A[1] + A[2]
else if size == 2 then cost += A[1]
else cost += A[0]
return cost ソートに一番時間がかかり、O(NlogN)となります
- 11. 解法 - 貪欲法
➢ 島Aにあるボートが3隻以下の時、答えはすぐにもとまります。
○ 4隻以上だった場合は、3隻以下になるまで以下の処理を繰り返し行います。
○ 島Aにあるボートの中で1番遅いものをX、2番目に遅いものをY、1番速いものをx,2
番目に速いものをyとおいた場合、次の2つの選択肢のうち効率の良い運び方を選ら
んでXとYを運びます。
➢ 選択肢1
○ xとXを連結させて島Bへ運ぶ → xで島Aへ戻る
→ xとYを連結させて島Bへ運ぶ → xで島Aへ戻る
➢ 選択肢2
○ xとyを連結させて島Bへ運ぶ → xで島Aへ戻る
→ XとYを連結させて島Bへ運ぶ → yで島Aへ戻る
- 12. 提出状況
➢ First Accepted
○ Onsite : Darseinisshyuusti さん (56 min)
○ Online : japlj さん (35 min)
➢ Acceptances / Submissions : 14 / 53
Success rate : 26.42%
- 13. ジャッジ解
➢ ソルバー
○ 阿部(C++: 30行)
○ 大桃(C++: 24行)
➢ 旧ソルバー(制約 : 1<= N <= 15 解法はビットDP)
○ 日下(C++: 57行)
○ 高橋(C++: 48行)
○ 照沼(C++: 78行)
○ 平出(C++: 55行)
○ 矢野(C++: 90行)
○ 山口(C++: 70行)
○ 渡辺(C++: 61行)