問題描述:
請描述乙個有效的演算法,使之對給定的實軸上的點集,能確定包含所有給定點的最小的單位閉區間集合。
分析:
1) 從點集中取最小的點;
2) 取以該點為左起點的單位閉區間,然後從點集中去掉包含在該單位閉區間的所有點;
3) 重複1)-2),直到所有的點處理完畢;那麼2)得到的單位閉區間集合a即為所求;
證明:
i) 從2)中看到,點集中的任意點必定包含在a的某一單位閉區間中,即2)得到的單位閉區間集合a是的問題的乙個解;
ii) 假設b是一最優解, 那麼b中必定有乙個單位閉區間包含點集的最小點;
由於 「包含該最小點的單位閉區間能包含的點集中的點」 總是 「以該點為左起點的單位閉區間能包含的點集中的點」 的子集;
所以 用以最小點為左起點的單位閉區間 代替b中包含該最小點的單位閉區間, 得到的新的解不會比b更差,即a也是最優解;
貪心演算法 最小的單位閉區間集 收藏
問題描述 請描述乙個有效的演算法,使之對給定的實軸上的點集,能確定包含所有給定點的最小的單位閉區間集合。分析 1 從點集中取最小的點 2 取以該點為左起點的單位閉區間,然後從點集中去掉包含在該單位閉區間的所有點 3 重複1 2 直到所有的點處理完畢 那麼2 得到的單位閉區間集合a即為所求 證明 i ...
區間排程 貪心演算法
一 找到數目盡可能多的相容任務 假設每個任務j從sj開始到fj結束。若要找到盡可能多的相容任務,只需要將所有任務按照結束時間排序,每次都選擇最早結束的那個任務。因為每次選最早結束的,則留給之後的時間就越多。在餘下的時間中與被選的那個任務衝突的任務最多也只能有乙個被選 代替現在被選的這個任務 但是留下...
貪心演算法 區間問題
區間選單個點 問題描述 數軸上有n個閉區間 ai,bi 取盡量少的點,使得每個區間內都至少有乙個點 不同區間內含的點可以是同乙個 輸入 第1行 乙個整數n 接下來n行,每行2個整數ai,bi 輸出 乙個整數,表示滿足條件的最少點數。樣例輸入 5 4 62 3 1 46 8 5 7 樣例輸出 2策略分...