洛谷 P2242 公路維修問題
阿新 • • 發佈:2017-11-26
得到 tps href turn 範圍 esp 題目 i++ radi
輸入輸出樣例
輸入樣例#1: 復制
P2242 公路維修問題
題目描述
由於長期沒有得到維修,A國的高速公路上出現了N個坑。為了盡快填補好這N個坑,A國決定對M處地段采取交通管制。為了求解方便,假設A國的高速公路只有一條,而且是筆直的。現在給出N個坑的位置,請你計算,最少要對多遠的路段實施交通管制?
輸入輸出格式
輸入格式:
輸入數據共兩行,第一行為兩個正整數N、M (2<=N<=15000,M<=N)。第二行給出了N個坑的坐標(坐標值均在長整範圍內,按從小到大的順序給出,且不會有兩個點坐標相同)。
輸出格式:
僅一行,為最小長度和。
輸入輸出樣例
輸入樣例#1: 復制
18 4
3 4 6 8 14 15 16 17 21 25 26 27 30 31 40 41 42 43
輸出樣例#1: 復制
25
說明
[樣例說明]
交通管制的地段分別為:3-8,14-21,25-31,40-43。
思路:貪心。
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; int n,m,ans; int num[15001],sum[15001]; int cmp(int a,int b){ return a>b; } int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) scanf("%d",&num[i]); for(int i=1;i<n;i++) sum[i]=num[i+1]-num[i],ans+=sum[i]; sort(sum+1,sum+n,cmp); for(int i=1;i<m;i++) ans-=sum[i]; cout<<ans+m; }
洛谷 P2242 公路維修問題