區間覆蓋問題 逆向貪心法簡單

2021-09-26 02:50:55 字數 782 閱讀 8245

problem description

用i來表示x座標軸上座標為[i-1,i]的長度為1的區間,並給出n(1≤n≤200)個不同的整數,表示n個這樣的區間。

現在要求畫m條線段覆蓋住所有的區間,

條件是:每條線段可以任意長,但是要求所畫線段的長度之和最小,

並且線段的數目不超過m(1≤m≤50)。

input

輸入包括多組資料,每組資料的第一行表示區間個數n和所需線段數m,第二行表示n個點的座標。

output

每組輸出佔一行,輸出m條線段的最小長度和。

sample input

5 31 3 8 5 11

sample output

ac**

#include

#include

intmain()

} sum=a[n]

-a[1]+

1;//匯流排段長度

for(i=

1;i)//相鄰區間的長度

b[i]

=a[i+1]

-a[i]-1

;for

(i=1

;i1;i++

)//相鄰區間長度從大到小氣泡排序

}for

(i=1

;i<=m-

1;i++

)//去除m-1個區間長度

printf

("%d\n"

,sum);}

return0;

}

貪心法 區間覆蓋問題

區間覆蓋問題。數軸上有n個閉區間 a i,bi 選擇盡量少的區間覆蓋一條指定線段 s t 先進行預處理,將不包含 s t 的區間都去掉,然後再按左區間從小到大排序。如果最小區間的左區間大於 s 的話,則無解。選取包含 s的右區間最大的區間,該區間的右區間仍然小於下乙個區間的左區間,則無解。按照這樣的...

貪心法 區間完全覆蓋問題

問題 區間完全覆蓋問題 問題描述 給定乙個長度為m的區間,再給出n個區間的起點和終點,求最少使用多少個區間可以將整個區間完全覆蓋。方法 先將n個區間按照起點進行遞增排序。令s表示已經覆蓋到的區域。再剩下的區間中找出所有左端點小於等於當前已經覆蓋到的區域s並且右端點大於等於s的區間,取右端點最大的區間...

貪心 區間覆蓋問題

區間覆蓋問題 time limit 1000ms memory limit 65536kb submit statistic discuss problem description 設x1 x2 xn 是實直線上的n 個點。用固定長度的閉區間覆蓋這n 個點,至少需要多少個這樣的固定長度閉區間?對於給...