1. 程式人生 > >洛谷 P2242 公路維修問題

洛谷 P2242 公路維修問題

得到 tps href turn 範圍 esp 題目 i++ radi

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 公路維修問題