ABC153参加
ABC153に参加しました.
久しぶりに5完しました!
やったね!
コンテスト成績はこちら
今回はFortranで3完, Pythonで1完, C++で1完でした.
A問題
FortranでACしました.
して, 小数点以下を切り上げて終わりでした.
B問題
FortranでACしました.
の総和がより大きいかどうか見て終わりでした.
C問題
FortranでACしました.
モンスター全員の体力の総和から, 大きい順に匹分のHPを引いて終わりでした.
D問題
Python3でACしました.
モンスター全員の体力をからにする操作を1回としてカウントすることにします.
条件から, 1回の操作でモンスターの数が2倍に増えること, そして最初のモンスターは1匹だけであることから回目の操作におけるモンスターの数はとなります.
よってモンスター全員を倒すためにはを2で割ることのできる回数(商が0より大きくなる回数)をとしてとなることがわかります.
以上からを2で何回割れるか数えてを求めれば終わりになります.
E問題
C++でACしました.
サンプルケースから規則性が見られず, あとはなんかが報酬でがコストっぽく見えたので直感的にDPかな?って思ってみてました.
その後, 制約を見るとがだったのでここでDPだと確信して紙DPをして遷移式を考えました.
行列のdpテーブルを考えたときの遷移式は以下の通りです.
$$ dp[i][j]= \begin{cases} \lceil B[i]/j \rceil \hspace{10pt} (i=1)\\ \min (dp[i-1][j],B[i]) \hspace{10pt} (j \leq A[i])\\ \min (dp[i-1][j],dp[i][j-A[i]]+B[i]) \hspace{10pt} (others) \end{cases} $$
久しぶりの水パフォでHighest更新です!!
やったね!!!
3月末までに緑色がだいぶ射程圏内に入りましたね.
今回のセットは全体を通して統一感と言うかストーリーというかがあってとても楽しかったです.
多分次回は冷えると思いますが極力冷えないようにがんばります.