国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

區間覆蓋問題

2019-11-11 04:36:27
字體:
來源:轉載
供稿:網友

PRoblem Description

 用i來表示x坐標軸上坐標為[i-1,i]的長度為1的區間,并給出n(1≤n≤200)個不同的整數,表示n個這樣的區間。現在要求畫m條線段覆蓋住所有的區間,條件是:每條線段可以任意長,但是要求所畫線段的長度之和最小,并且線段的數目不超過m(1≤m≤50)。 

Input

 輸入包括多組數據,每組數據的第一行表示點n,和所需線段數m,后面的n行表示點的坐標

Output

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

Example Input

5 31 3 8 5 11

Example Output

7#include<stdio.h>void sort1(int pos[],int n){    int i,j,t;    for(i=0;i<n-1;i++)    {        for(j=0;j<n-i-1;j++)        {            if(pos[j]>pos[j+1])            {t=pos[j];pos[j]=pos[j+1];pos[j+1]=t;}        }    }}void sort2(int dis[],int c){    int i,j,t;    for(i=0;i<c-1;i++)    {        for(j=1;j<=c-i-1;j++)        {            if(dis[j]<dis[j+1])            {t=dis[j];dis[j]=dis[j+1];dis[j+1]=t;}        }    }}int main(){    int n,m,pos[222],len,dis[222],i;    while(~scanf("%d%d",&n,&m))    {        for(i=0;i<n;i++)            scanf("%d",&pos[i]);        sort1(pos,n);        for(i=1;i<=n-1;i++)        {            dis[i]=pos[i]-1-pos[i-1];        }        sort2(dis,n-1);        if(m>=n) len=n;        else        {            for(i=1;i<=m;i++)            {                if(i==1) len=pos[n-1];                else len=len-dis[i-1];            }        }        printf("%d/n",len);    }    return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永靖县| 博客| 宣城市| 东至县| 建德市| 临潭县| 思茅市| 无极县| 临海市| 巴东县| 马尔康县| 嘉义市| 陕西省| 荥经县| 淮阳县| 崇明县| 米泉市| 宜昌市| 通州区| 托里县| 富锦市| 铜梁县| 日土县| 大庆市| 宣汉县| 紫阳县| 文登市| 固始县| 梅河口市| 屏东县| 嘉义县| 榆中县| 沂水县| 潞西市| 保定市| 南靖县| 醴陵市| 上杭县| 无极县| 无极县| 布拖县|