1. 程式人生 > >貪心演算法經典應用

貪心演算法經典應用

1.選擇不相交區間問題

【問題】

給定n個開區間(ai,bi),選擇儘量多個區間,使得這些區間輛兩沒有公共點。

【解題思路】

首先,按照結束時間b1<=b2<=..<=bn的順序排序,依次考慮各個活動,如果沒有和已經選擇的活動衝突,就選;否則就不選。

2.區間選點問題

【問題】

給定n個閉區間[ai,bi],在數軸上選儘量少的點,使得每個區間內都至少有一個點(不同區間內含的點可以是同一個)。

【解題思路】

首先,按照區間的結束位置從小到大排序,然後從區間1到區間n進行選擇,對於當前區間,若集合中的數不能覆蓋它,則將區間末尾的數加入集合。

【題目】

3.區間覆蓋問題

【問題】

給n個閉區間[ai,bi],選擇儘量少的區間覆蓋一條指定的線段區間[s,t]。

【解題思路】

先做預處理,將每個區間在[s,t]外的部分都應該預先被切掉,將所有區間按左端點從小到大排序,依次處理每個區間。每次選擇覆蓋點s的區間中右端點座標最大的一個,並將s更新為該區間的右端點座標,直到選擇的區間已包含了t為止。

【題目】