7-4 sdut-C语言实验-区间覆盖问题

简介: 7-4 sdut-C语言实验-区间覆盖问题

7-4 sdut-C语言实验-区间覆盖问题


分数 20


全屏浏览


切换布局


作者 马新娟


单位 山东理工大学


用i来表示x坐标轴上坐标为[i-1,i]的长度为1的区间,并给出n个不同的整数,表示n个这样的区间。


现在要求画m条线段覆盖住所有的区间,


条件是:每条线段可以任意长,但是要求所画线段的长度之和最小,


并且线段的数目不超过m。


###输入格式:

输入包括多组数据,每组数据的第一行表示区间个数n(1≤n≤200) 和所需线段数m(1≤m≤50),第二行表示n个点的坐标i(1≤i≤200)。


###输出格式:

每组输出占一行,输出m条线段的最小长度和。


###输入样例:

1. 5 3
2. 1 3 8 5 11


###输出样例:

7


代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

栈限制

8192 KB


#include<stdio.h>
void sort(int *a, int n, int f) {
    int t;
    if (f) {
        for ( int i = 0; i < n - 1; i++) {
            for ( int j = 0; j < n - i - 1; j++) {
                if ( a[j] > a[j+1] ) {
                    t = a[j];
                    a[j] = a[j+1];
                    a[j+1] = t;
                }
            }
        }
    }
    else {
        for ( int i = 0; i < n - 1; i++) {
            for ( int j = 0; j < n - i - 1; j++) {
                if ( a[j] < a[j+1] ) {
                    t = a[j];
                    a[j] = a[j+1];
                    a[j+1] = t;
                }
            }
        }
    }
}
int main() {
    int n, m;
    scanf("%d %d", &n, &m);
    int a[201], b[201];
    for ( int i = 0; i < n; i++)
        scanf("%d", &a[i]);
    if ( n <= m )
        printf("%d\n", n);
    else {
        sort(a, n, 1);
        for ( int i = 0; i < n - 1; i++)
            b[i] = a[i+1] - a[i] - 1;
        sort(b, n - 1, 0);
        int ans = a[n-1] - a[0] + 1;
        for ( int i = 0; i < m - 1; i++)
            ans -= b[i];
        printf("%d\n", ans);//max
    }
    return 0;
}
目录
相关文章
|
BI
7-6 sdut-C语言实验-最长上升子序列
7-6 sdut-C语言实验-最长上升子序列
340 1
7-2 sdut-C语言实验-删数问题(贪心法二)
7-2 sdut-C语言实验-删数问题(贪心法二)
205 2
7-5 sdut-C语言实验-最长公共子序列
7-5 sdut-C语言实验-最长公共子序列
403 0
|
开发工具 git
7-4 sdut-C语言实验-最长公共子序列
7-4 sdut-C语言实验-最长公共子序列
377 1
递推7-2 sdut-C语言实验-养兔子分数
递推7-2 sdut-C语言实验-养兔子分数
151 0
|
BI
7-7 sdut-C语言实验-上升子序列
7-7 sdut-C语言实验-上升子序列
250 0
|
存储 Java
sdut java lab7.2
sdut java lab7.2
183 0
7-7 sdut-C语言实验-懒虫小鑫
7-7 sdut-C语言实验-懒虫小鑫
171 0
7-1 sdut-C语言实验-递归的函数
7-1 sdut-C语言实验-递归的函数
268 2
|
算法
7-2 sdut-C语言实验-数字三角形问题
7-2 sdut-C语言实验-数字三角形问题
225 1

热门文章

最新文章