区间覆盖问题
来源:互联网 发布:09的淘宝店 编辑:程序博客网 时间:2024/06/10 09:08
题目描述
用i来表示x坐标轴上坐标为[i-1,i]的长度为1的区间,并给出n(1≤M≤200)个不同的整数,表示n个这样的区间。
现在要求画m条线段覆盖住所有的区间,
条件是:每条线段可以任意长,但是要求所画线段的长度之和最小,
并且线段的数目不超过N(1≤N≤50)。
输入
输入包括多组数据,每组数据的第一行表示点n,和所需线段数m,后面的n行表示点的坐标
输出
输出每组输出占一行表示线段的长度。
示例输入
5 31 3 5 8 11
示例输出
7
提示
注意线段长度它不一定按顺序输入,要先排序
#include<stdio.h>#include<math.h>int main(){ int m,n,a[300],b[300],i,j,t,s; while(scanf("%d %d",&m,&n)!=EOF) { if(m==1) printf("1\n"); else { for(i=1; i<=m; i++) scanf("%d",&a[i]); for(i=1; i<m; i++) for (j=i+1; j<=m; j++) if(a[i]>a[j]) { t=a[i]; a[i]=a[j]; a[j]=t; } for(i=1; i<m; i++) { b[i]=a[i+1]-a[i]-1; } for(i=1; i<m-1; i++) for(j=i+1; j<m; j++) if(b[i]>b[j]) { t=b[i]; b[i]=b[j]; b[j]=t; } s=0; for(i=1; i<=m-n; i++) s+=b[i]; s+=m; printf("%d\n",s); } } return 0;}
0 0
- 区间覆盖问题
- 区间覆盖问题
- 区间覆盖问题
- 区间覆盖问题
- 区间覆盖问题(sdut2074
- 区间覆盖问题
- 区间覆盖问题【贪心】
- 区间覆盖问题
- 【区间完全覆盖问题】
- 区间覆盖问题
- 区间覆盖问题 贪心
- 区间覆盖问题
- 贪心 区间覆盖问题
- 区间覆盖问题(贪心)
- 区间覆盖问题
- 区间覆盖问题
- 区间覆盖问题
- 区间覆盖问题 SDUT2074
- 驱动程序测试问题
- FlashDevelop / FlashBuilder 常用快捷键
- c++前缀语义
- 重温设计模式(三)——职责链模式(chain of responsibility) [转载]
- 探寻C++最快的读取文件的方案
- 区间覆盖问题
- Android开发中倒计时功能的实现
- IOS UIView 之类方法篇 Class Methods
- 关于函数PsSetLoadImageNotifyRoutine的通知时机
- 铁轨
- k60 mcg模块概述
- HTML5画布谷歌跳跃的球
- 驱动读取注册表问题
- Valid Palindrome 判断一个字符串是否是回文串