編集:これはスイープラインの問題だと思います。(下部の update2 を参照)
この問題では、N
オブジェクトとM
制約が与えられます。(N
できる200k
、M
できる100k
)。各オブジェクトは、黒または白のいずれかです。各制約は の形式(x, y)
であり、オブジェクトの範囲内に 1 つの白いオブジェクトx..y
があることを意味します。残りは黒です。存在できる白いオブジェクトの最大数、または制約を満たすことができないかどうかを判断したいと考えています。
制約が別の制約に完全に含まれている場合、内部の制約によって白いオブジェクトを配置できる場所が決まります。また、複数の交差しない制約が別の制約に含まれている場合、制約ごとに1 つの白いオブジェクトしか存在できないという事実に違反するため、これは不可能です。アルゴリズムは、2 ~ 3 秒未満で実行できるほど高速である必要があります。
更新: 回答の 1 つは、正確なカバーの問題に言及しています。これは NP 完全ではない特殊なインスタンスですか?
Update2: 各制約を開始イベントと終了イベントに変更し、これらのイベントを並べ替えると、これらのイベントを体系的にスイープして白いオブジェクトを割り当てることができますか?