hdu2037(今年暑假不AC)

来源:互联网 发布:php工程师收入 编辑:程序博客网 时间:2024/05/18 12:28
贪心,先把节目结束时间按升序排序,第一个节目肯定有,从第二个节目开始,如果其结束时间大于等于前一个节目的开始时间,则计数。注意:前一个节目 是计数的节目,而不是原始排好序的节目。
 
#include<iostream>#include<stdio.h>using namespace std;struct jiemu{ int start,end; }p[110];int cmp(const void *p1,const void *p2){    return (*(jiemu*)p2).end<(*(jiemu*)p1).end?1:-1;}int main(){    int n,num;    while(cin>>n&&n)    {                                        for(int i=0;i<n;i++)                    cin>>p[i].start>>p[i].end;                    num=1;                    qsort(p,n,sizeof(p[0]),cmp);                    /*                    for(int i=0;i<n;i++)                     cout<<p[i].start<<" "<<p[i].end<<endl;                     */                     int t=p[0].end;                    for(int i=0;i<n-1;i++)                     if(p[i+1].start>=t)                      {                                       t=p[i+1].end;                                       num++;                     }                    cout<<num<<endl;    }    return 0;}