标签:selected mono class std long least ever data sign
Description
Input
Output
Sample Input
3 10 1 7 3 6 6 10
Sample Output
2
最小代价的区间覆盖。
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cstdlib> #include<map> using namespace std; typedef long long LL; const int maxn=25000+100; struct node{ int st,ed; }e[maxn]; int n,m; int cmp(node l1,node l2) { if(l1.st==l2.st) return l1.ed>l2.ed; return l1.st<l2.st; } int main() { int ed,temp; while(~scanf("%d%d",&n,&m)) { for(int i=0;i<n;i++) scanf("%d%d",&e[i].st,&e[i].ed); sort(e,e+n,cmp); if(e[0].st!=1) { printf("-1\n"); continue; } int ans=1; ed=e[0].ed; temp=0; for(int i=1;i<n;i++) { if(e[i].st>ed+1) { ed=temp; ans++; } if(e[i].st<=ed+1) { if(e[i].ed>temp) temp=e[i].ed; if(e[i].ed==m) { ans++; ed=m; break; } } } if(ed==m) printf("%d\n",ans); else printf("-1\n"); } return 0; }
标签:selected mono class std long least ever data sign
原文地址:http://www.cnblogs.com/jhcelue/p/7224924.html