We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
今回の問題の最適解は、長さLの物体をK等分に切断することである。
そこでK等分した際の位置から、実際のN個の切れ目の位置に最も近いものを選択していけば解けると考えた。
しかし、1個1個端から順番に実行していくと、最初に選択した切り口の影響で後続の切り口の最適箇所が変化してしまうため、すべてを同時に計算する必要があったが、その方法がわからなかった。
ポイントは、「スコアを x 以上にすることができるのか」という問いを「切断されてできる K+1 個のようかんの長さをすべて x 以上とすることができるのか」と言い換えることである。
この問題は2分探索と貪欲法を組み合わせることで解くことができる。
mid
left
right
O(log(L))
O(N)
全体の計算量は O(Nlog(L)) となる。
O(Nlog(L))
類題はコメントに追加する
The text was updated successfully, but these errors were encountered:
類題
Sorry, something went wrong.
似たような系統の問題で 平均最大化 がある。
No branches or pull requests
リンク
着想
解答時
今回の問題の最適解は、長さLの物体をK等分に切断することである。
そこでK等分した際の位置から、実際のN個の切れ目の位置に最も近いものを選択していけば解けると考えた。
しかし、1個1個端から順番に実行していくと、最初に選択した切り口の影響で後続の切り口の最適箇所が変化してしまうため、すべてを同時に計算する必要があったが、その方法がわからなかった。
公式解説
ポイントは、「スコアを x 以上にすることができるのか」という問いを「切断されてできる K+1 個のようかんの長さをすべて x 以上とすることができるのか」と言い換えることである。
この問題は2分探索と貪欲法を組み合わせることで解くことができる。
mid
以上にすることが可能である ->left
right
O(log(L))
O(N)
全体の計算量は
O(Nlog(L))
となる。ACコード
その他
類題はコメントに追加する
The text was updated successfully, but these errors were encountered: