私はこの問題を割り当てられました。私は解決しなければなりません:値を最大化するためのバイナリ検索アルゴリズム
特定のスイミングプールにはたくさんのガイド付きアクティビティがあります。したがって、使用規則は非常に厳格です。
フリータイムスロットはわずか1分です。フリースロットを使用した後、別のスロットを使用する前に少なくともx秒待つ必要があります。空きスロットのリストがあり、少なくともm
分間泳ぎたいと思う。それを可能にする最大数はx
ですか?
入力
入力はいくつかのケースから成ります。すべての場合は、分の数がm
、スロットの数がn
で始まり、n
トリプルH:M:S
が続き、これは1分無料のレーンがH:M:S
から始まることを示しています。 2 ≤ m ≤ n ≤ 1000
とし、時間が00:00:00
と23:59:00
の間であり、タイムスロット間に重複がないと仮定します。最後のエントリには、m = n = 0
という特殊なケースが付いています。
すべてのケースに対する出力
、M分以上の総浴時間を許容最大x
を印刷します。
変数xを最大化するためにバイナリ検索を使用して実装することはできますか?問題の
出力:
input:
4 8
00:10:40 00:35:30 01:00:00 01:55:00 02:10:00 03:15:00 12:00:20 23:59:00
output: x = 11000
は、世界全体で、「私は解決しなければならない問題」の詳細を共有していただきありがとうございます。今、あなたの質問は何ですか? –
@SamVarshavchikバイナリ検索を使用して問題の変数xを最大にするための実装を知りたいと思います。 –
多くの可能な実装があります。広すぎます。 –