贪心算法之区间
Posted lanyangs
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了贪心算法之区间相关的知识,希望对你有一定的参考价值。
poj2376
对于这道区间覆盖每次选择可选的最远的点...
选择更近的点是没有意义的
所以选择更近的点是更好的
代码如下...........
#include<cstdio> #include<iostream> #include<cstdlib> #include<cstring> #include<cmath> #include<algorithm> #include<queue> #include<stack> using namespace std; struct sd { int beg,end; }a[25005]; int cnt; bool cmp(sd a,sd b) {return a.end>b.end;} int main() { int n,len,last=1; cin>>n>>len; for(int i=1;i<=n;i++) scanf("%d%d",&a[i].beg,&a[i].end); sort(a+1,a+1+n,cmp); while(last<=len) { bool flag=0; for(int i=1;i<=n;i++) if(a[i].beg<=last&&a[i].end>=last) { last=a[i].end+1; flag=true; cnt++; } if(!flag) { printf("-1"); return 0; } } printf("%d",cnt); return 0; }
以上是关于贪心算法之区间的主要内容,如果未能解决你的问题,请参考以下文章