time limit: 1000ms
memory limit: 65536kb
problem description
用i來表示x座標軸上座標為[i-1,i]的長度為1的區間,並給出n(1≤n≤200)個不同的整數,表示n個這樣的區間。
現在要求畫m條線段覆蓋住所有的區間,
條件是:每條線段可以任意長,但是要求所畫線段的長度之和最小,
並且線段的數目不超過m(1≤m≤50)。
input
輸入包括多組資料,每組資料的第一行表示區間個數n和所需線段數m,第二行表示n個點的座標。
output
每組輸出佔一行,輸出m條線段的最小長度和。
example input
5 31 3 8 5 11
example output
7
hint
author
#includeint main()
///將座標從小當大排序
for( i = 0; i < n - 1; i++ ) }}
///求出每乙個區間與前乙個區間的間隔,第乙個不做處理
for( i = 1; i < n; i++ )
n--;///第乙個不作處理,所以總數要減一
///按照區間間隔從大到小排序
for( i = 0; i < n - 1; i++ ) }}
///m條線就要進行m-1次分割,每一次分割刪除最大的間隔區間
t = a[n] - a[0] + 1;
for( i = 0; i < m - 1; i++ )
printf("%d\n",t);
}return 0;
}
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...
區間覆蓋問題
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條線段覆蓋住所有的區間,條件是 每條線段可以任意長,但是要求所畫線段的長度之和最小,並且線段的...