uva---10020+贪心
2014-11-20 11:58
441 查看
区间覆盖问题,刘汝佳小白书P154页有详细思路;
代码如下:
代码如下:
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; typedef struct { int x,y; }P; P p[110000]; int cmp(P p1,P p2) { if(p1.x==p2.x) return p1.y<p2.y; return p1.x<p2.x; } int main() { int i,j,k,t,m,ans[110000],cnt; scanf("%d",&t); while(t--) { scanf("%d",&m); k=0; while(1) { int x,y; scanf("%d%d",&x,&y); if(!x&&!y) break; p[k].x=x; p[k].y=y; k++; } sort(p,p+k,cmp); cnt=0; int left=0,right,flag=0; for(i=0;i<k;) { right=0; while(p[i].x<=left&&i<k) { if(p[i].y>right) { right=p[i].y; j=i; } i++; } if(right==0) break; left=right; ans[cnt++]=j; if(right>=m) { flag=1; break; } } if(!flag) { printf("0\n"); if(t) printf("\n"); continue; } printf("%d\n",cnt); for(i=0;i<cnt;i++) printf("%d %d\n",p[ans[i]].x,p[ans[i]].y); if(t) printf("\n"); } return 0; }
相关文章推荐
- uva 10020 Minimal coverage(贪心-最小覆盖问题)
- UVA 10020 Minimal coverage 区间覆盖问题 贪心
- UVa 10020 Minimal coverage (贪心&区间覆盖)
- UVA10020 Minimal coverage 贪心
- uva 10020(贪心)
- UVA10020->贪心
- UVA 10020 Minimal Coverage 排序+贪心
- uva 10020 Minimal coverage(贪心-最小覆盖问题)
- UVA 10020 Minimal coverage(贪心 + 区间覆盖问题)
- uva 10020 Minimal coverage 【贪心】+【区间完全覆盖】
- uva 10020 Minimal coverage 【贪心】+【区间全然覆盖】
- Minimal coverage - UVa 10020 贪心
- UVa 10020 - Minimal coverage(区间覆盖、贪心)
- UVA 10020 - Minimal coverage (贪心) 区间覆盖问题
- UVa 10020 - Minimal coverage(区间覆盖并贪心)
- uva 10020- Minimal coverage (贪心思想 简单区间覆盖)
- UVA 10020 Minimal coverage(贪心 + 区间覆盖问题)
- (贪心5.2.9)UVA 10020 Minimal coverage(利用数据有序化来进行贪心选择)
- uva 10020 Minimal coverage(贪心,区间覆盖)
- [贪心]uva10020 Minimal coverage