sdut 2074 區間覆蓋問題(貪心)

2021-08-21 09:00:54 字數 641 閱讀 3210

time limit: 1000ms memory limit: 65536k

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

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

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

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

輸入包括多組資料,每組資料的第一行表示點n,和所需線段數m,後面的n行表示點的座標

輸出每組輸出佔一行表示線段的長度。

5 3

1 3 5 8 11

7

解題報告:

先把區間轉化成點的問題。本題是區間問題的一種解法和思路(做減法),畫圖模擬後貪心找出不需要的那些個間隔,並將其減去,最後得到的就是答案。

樣例分析:

1-5 ,8 ,11 三條線段即為所求。

ac**:

#include#include#includeusing namespace std;

int cmp(int a,int b)

int main()

sort(a,a+n);

sum=a[n-1]-a[0]+1;

//cout<

區間覆蓋問題 SDUT2074

用i來表示x座標軸上座標為 i 1,i 的長度為1的區間,並給出n 1 m 200 個不同的整數,表示n個這樣的區間。現在要求畫m條線段覆蓋住所有的區間,條件是 每條線段可以任意長,但是要求所畫線段的長度之和最小,並且線段的數目不超過n 1 n 50 輸入包括多組資料,每組資料的第一行表示點n,和所...

sdutoj 2074 區間覆蓋問題

用 m mm 條線段覆蓋住 n nn 個小區間,求 m mm 條線段的最小長度和。1 當 m mm 大於等於 n nn 時,直接輸出 n nn 即可。2 當 m mm 小於 n nn 時,先將 n nn 個區間從小到大排好序,區間的總長度便可知道。用 m mm 條線段覆蓋,也就是在這片區間上進行 m...

1751 區間覆蓋問題

time limit 1000 ms memory limit 65536 kib problem description 設x1 x2 xn 是實直線上的n 個點。用固定長度的閉區間覆蓋這n 個點,至少需要多少個這樣的固定長度閉區間?對於給定的實直線上的n個點和閉區間的長度k,設計解此問題的有效演...