區間覆蓋問題

2021-08-25 17:34:24 字數 860 閱讀 3944

(

time limit: 1000 ms memory limit: 65536 kib

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 3

1 3 8 5 11

sample output

7 hint

注意:題目資料已於2018.4.16更新

這種做法是用m-1個區間將整個區間劃分為m個區間,按理來說要想覆蓋區間最小,m-1個區間和就應該最大,照這個思想給區間差從大到小排序,再用總區間減去m-1個區間即可

source

#include 

int a[300];

int b[300];

int main()

for(i=0;i1;i++)}}

for(i=0;i1;i++)

for(i=0;i1-1;i++)}}

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

for(i=0;iprintf("%d\n",sum);

}return

0;}

區間覆蓋問題

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