Minimal coverage -uva 覆盖线段,贪心
来源:互联网 发布:如何破解网站数据库 编辑:程序博客网 时间:2024/04/28 05:51
一道经典的贪心问题,具体方法就是将(an,bn)区间,按照an从小到大的顺序进行排序,之后从0开始,
取最大的有效区间,这里用到了结构体的快排,否则可能会超时.
#include<stdio.h>#include<stdlib.h>#include<string.h>#define MAX_SIZE 100000 + 10#define BOTTOM -50000 - 10struct Points{ int x,y;}a[MAX_SIZE],b[MAX_SIZE];int cmp(const void *a,const void *b){ struct Points * c=(Points*)a; struct Points * d=(Points*)b; if(c->x!=d->x) return c->x - d->x;/*升序*/ else return c->y - d->y;}int main(){ int M,N,m,n,i,j,cases,t,p,q,min,max; scanf("%d",&N); for(cases=1;cases<=N;cases++) { int ok=0,k; scanf("%d",&M); for(i=0,j=0;scanf("%d%d",&m,&n);) { if(!m&&!n) break; if(m<M&&n>0) /*不在范围内的直接舍去*/ { a[j].x=m; a[j].y=n; j++; } } qsort(a,j,sizeof(a[0]),cmp); if(a[0].x>0||j==0) {printf("0\n");continue;} for(i=0,t=0,q=0,max=BOTTOM;i<j;i++) { if(a[i].x<=t) { m=a[i].y-t;/*有效长度*/ if(m>max) { max=m; p=i;/*储存坐标*/ } } if(a[i+1].x>t||i==j-1)/*如果下一个坐标大于*/ { /*就对上面所计算的区间进行取长*/ b[q].x=a[p].x; b[q].y=a[p].y; q++; t=a[p].y; max=BOTTOM; } if(t>=M) break; } if(t>=M) ok=1; /*for(i=0;i<q;i++) printf("%d %d\n",b[i].x,b[i].y);*/ if(ok) { printf("%d\n",q); for(i=0;i<q;i++) printf("%d %d\n",b[i].x,b[i].y); } else printf("0\n"); if(cases<N) printf("\n"); memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); } return 0;}
0 0
- Minimal coverage -uva 覆盖线段,贪心
- UVa 10020 Minimal coverage (贪心&区间覆盖)
- uva 10020 Minimal coverage(贪心,区间覆盖)
- UVA 10020 - Minimal coverage (贪心) 区间覆盖问题
- UVA 10020 Minimal coverage(贪心 + 区间覆盖问题)
- uva 10020 Minimal coverage(贪心-最小覆盖问题)
- UVA 10020 Minimal coverage 区间覆盖问题 贪心
- UVa 10020 - Minimal coverage(区间覆盖、贪心)
- uva 10020- Minimal coverage (贪心思想 简单区间覆盖)
- uva 10020 Minimal coverage 【贪心】+【区间完全覆盖】
- UVA 10200 Minimal coverage (区间覆盖贪心)
- uva 10020 Minimal coverage(贪心-最小覆盖问题)
- UVA Minimal coverage (贪心)
- Minimal coverage - UVa 10020 贪心
- UVa 10020 - Minimal coverage(区间覆盖)
- UVA 10020 Minimal coverage(最小覆盖问题)
- UVA 10020 Minimal Coverage 排序+贪心
- UVA 10020——Minimal coverage(最小覆盖,贪心问题)
- python奇怪的运算规则
- 请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接
- 寻找“发帖”水王
- Advanced TCP/IP - THE RAW SOCKET PROGRAM EXAMPLES
- HDOJ1014 Uniform Generator
- Minimal coverage -uva 覆盖线段,贪心
- 如何书写高质量的jQuery代码
- 科幻小说和提供新的科技概念的网站收集
- 响应式奶油立体字效果
- 微信平台第三方开发者的自述:微信公众平台只能是腾讯的菜?
- IIS7 发布网站 出现 "处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误"
- 十六进制转字符串
- 代码学习以及一些在线编辑器链接收集
- 琴瑟在御