設 x1, x2, …, xn是實直線上的 n 個點。用固定長度的閉區間覆蓋這 n個點,至少需要多少個這樣的固定長度閉區間?設計解此問題的有效演算法,並證明演算法的正確性。
對於給定的實直線上的 n 個點和閉區間的長度 k,程式設計計算覆蓋點集的最少區間數,我們要使用盡可能少的區間,就要使每個區間盡可能覆蓋多的點,先將xi各點公升序排序,然後逐個用區間覆蓋就行
#include
#include
using
namespace std;
const
int maxn =
1e5+5;
int x[maxn]
;int
main()
sort
(x, x + n)
;int begin = x[0]
;int ans =1;
for(
int i =
1; i < n;i++)}
cout << ans << endl;
}
6 2
1 -2 2 -1 0 3
區間覆蓋問題
time limit 1000ms memory limit 65536k 用i來表示x座標軸上座標為 i 1,i 的長度為1的區間,並給出n 1 m 200 個不同的整數,表示n個這樣的區間。現在要求畫m條線段覆蓋住所有的區間,條件是 每條線段可以任意長,但是要求所畫線段的長度之和最小,並且線段的...
區間覆蓋問題
time limit 1000ms memory limit 65536k 用i來表示x座標軸上座標為 i 1,i 的長度為1的區間,並給出n 1 m 200 個不同的整數,表示n個這樣的區間。現在要求畫m條線段覆蓋住所有的區間,條件是 每條線段可以任意長,但是要求所畫線段的長度之和最小,並且線段的...
區間覆蓋問題
用i來表示x座標軸上座標為 i 1,i 的長度為1的區間,並給出n 1 n 200 個不同的整數,表示n個這樣的區間。現在要求畫m條線段覆蓋住所有的區間,條件是 每條線段可以任意長,但是要求所畫線段的長度之和最小,並且線段的數目不超過m 1 m 50 input 輸入包括多組資料,每組資料的第一行表...