**
我這是低創翻譯。
改進的貪心演算法,較優解。
給出 \(n\) 個集合,第 \(i\) 個集合 \(cnt_i\) 個互不相同的元素。要求從其中選取 \(k\) 個集合使得其中不同元素個數最多,求這個值。
樣例:
3 個集合:
選 2 個集合,最優方案為:
有 6 個不同元素
已經被證明是個 np-hard 問題。
暴力很簡單就不說了。
每次取當前沒被取過的集合裡還沒出現的元素最多的集合,並把此集合中新出現的集合標記為出現過。
樣例:
3 個集合:
第 1 步:
選擇 ,將 標記為選過
第 2 步:
選擇 最終方案為 ,答案為 5,不是最優解。
可以通過隨機化選集合使得答案可能更大。
選定乙個步數 \(p\),每次列舉 \(p\) 個集合並計算它們的不同元素個數,選取最大的一組集合並將其元素標記為選過。顯然跟上面那個貪心差不多。
時間複雜度 \(o(\frac)\)。
原理:犧牲時間換更優解。
可以發現當 \(p=1\) 時,就是普通貪心;當 \(p=k\) 時,就是暴力。
**將其與其它幾種貪心對比,總體來看在 \(p\) 較小的時候還沒隨機化優。
這玩意兒比較簡單,實用性不高,了解即可。
感覺跟 beam search 差不多。
沒啥技術含量。
貪心 區域覆蓋問題
time limit 1000ms memory limit 65536k 有疑問?點這裡 用i來表示x座標軸上座標為 i 1,i 的長度為1的區間,並給出n 1 m 200 個不同的整數,表示n個這樣的區間。現在要求畫m條線段覆蓋住所有的區間,條件是 每條線段可以任意長,但是要求所畫線段的長度之和...
貪心 區間覆蓋問題
區間覆蓋問題 time limit 1000ms memory limit 65536kb submit statistic discuss problem description 設x1 x2 xn 是實直線上的n 個點。用固定長度的閉區間覆蓋這n 個點,至少需要多少個這樣的固定長度閉區間?對於給...
貪心法 區間覆蓋問題
區間覆蓋問題。數軸上有n個閉區間 a i,bi 選擇盡量少的區間覆蓋一條指定線段 s t 先進行預處理,將不包含 s t 的區間都去掉,然後再按左區間從小到大排序。如果最小區間的左區間大於 s 的話,則無解。選取包含 s的右區間最大的區間,該區間的右區間仍然小於下乙個區間的左區間,則無解。按照這樣的...