I - Shipping 解説 by potato167

計算量の改善

wip

この問題は \(O(N^{2}K)\) で解くことができます。

\(dp[i][j]\)\(i\) 個荷物を出荷し、最後に出荷した時刻が \(T[i + j] - X\) 以前であるものと定義します。その後、適切に更新を \(O(N)\) で行うことで、答えを求めることができます。

後で詳細を書くつもりですが、それまでは実装例を参考にして理解してください。

c++ 実装例 1ms

また、\(dp2[i]\)\(i\) 個目の荷物を \(T_{i}\) に出荷したときの最小コストとして、\(dp, dp2\) を適切に更新することで、 \(O(N^{2})\) にすることができます。

c++ 実装例 1ms

これは、suisen さんの解説 と同じ要領かもしれません。

投稿日時:
最終更新: