區間覆蓋問題

2021-10-05 18:16:32 字數 556 閱讀 6263

設 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 輸入包括多組資料,每組資料的第一行表...