洛谷 P1803
题目如下:
代码如下:
#include<cstdio> #include<iostream> #include<algorithm> using namespace std; struct g{ int l,r; }a[1000000]; bool cmp(g x,g y){ return x.r<y.r; } int main(){ int n,min; scanf("%d",&n); for(int i=0;i<n;i++) scanf("%d%d",&a[i].l,&a[i].r); sort(a,a+n,cmp); min=a[0].r; int k=1; for(int i=1;i<n;i++) { if(a[i].l>=min){ k++; min=a[i].r; } } printf("%d",k); return 0; }
思路:先把右端点确定好,在确定左端点。(从结束时间来看,确定了结束时间,再来确定开始时间)