区间覆盖问题
来源:互联网 发布:金卡戴珊身材 知乎 编辑:程序博客网 时间:2024/06/02 15:50
区间覆盖问题
Time Limit: 1000MS Memory limit: 65536K
题目描述
用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> void sort1(int value[],int n) { int i,j,t; for(i=0;i<n-1;i++) for(j=0;j<n-1;j++) if(value[j]<value[j+1]) { t=value[j]; value[j]=value[j+1]; value[j+1]=t; } } int main() { int m,n,i; int k[201],g[200]; while(scanf("%d %d",&m,&n)!=EOF) { int flag=0; for(i=0;i<m;i++) scanf("%d",&k[i]); sort1(k,m); for(i=0;i<m-1;i++) g[i]=k[i]-k[i+1]-1; sort1(g,m-1); if(n>=m) { printf("%d\n",m); flag=1; } int s=1; int f=k[0]-k[m-1]+1; int d=0; while((s<n)&&(g[d]>0)) { s++; f-=g[d]; d++; } if(flag==0) printf("%d\n",f); } return 0; }
- 区间覆盖问题
- 区间覆盖问题
- 区间覆盖问题
- 区间覆盖问题
- 区间覆盖问题(sdut2074
- 区间覆盖问题
- 区间覆盖问题【贪心】
- 区间覆盖问题
- 【区间完全覆盖问题】
- 区间覆盖问题
- 区间覆盖问题 贪心
- 区间覆盖问题
- 贪心 区间覆盖问题
- 区间覆盖问题(贪心)
- 区间覆盖问题
- 区间覆盖问题
- 区间覆盖问题
- 区间覆盖问题 SDUT2074
- Java 创建线程的方法
- IPC通信之共享内存
- 活动选择问题
- SVN服务器搭建和使用
- 关于在配置hibernate.cfg.xml时弹出的错误Unable to access java.sql.DatabaseMetaData to determine appropriate Dial
- 区间覆盖问题
- Codeforces Beta Round #18 (Div. 2 Only)——B
- 找零钱
- 算法学习一
- 面试基础 -- 单例模式
- Wine trading in Gergovia
- WIN32开发:如何获取父进程的ID
- 买大米(最优解)
- Scott Mitchell 的ASP.NET 2.0数据教程之四十一::实现开放式并发