1004 max program

来源:互联网 发布:外星人源码站 编辑:程序博客网 时间:2024/04/28 03:28

1004  Problem E

    “今年暑假不AC?”
“是的。”
“那你干什么呢?”
“看世界杯呀,笨蛋!”
“@#$%^&*%...”

    题目概述:在一段连续时间内,判断可以观看完整电视节目的最大数目。

    思路:要求可以最大数目,即令每一节目,按结束先后进行排序,先结束的

排在最前面,然后按后续节目开始时间,与前一节目结束时间比较,在不冲突的

情况下得到能够观看完整节目的最大数。

    感想:因为之前学习贪心,这样的例子,作为最典型的题目出现,所以做

起来并没有太大的难度,只要在排序之后,完成比较,代码并没有什么难度!

    #include<iostream>

#include <stdio.h>

#include <algorithm>

using namespace std;

struct Ti{

   int s;

   int e;

};

bool cmp(const Ti &a,const Ti &b){

    if(a.e<=b.e) returntrue;

    return false;

};

 

int main(){

    int i,n;

    Ti pro[101];

   while(cin>>n&&n!=0){

       for(i=0;i<n;i++){

      cin>>pro[i].s>>pro[i].e;

       }

       sort(pro,pro+n,cmp);

    int m=1,preEnd=0;

    for(int j=1;j<n;j++)

       if(pro[j].s>=pro[preEnd].e){

        m++;

        preEnd=j;

    }

   cout<<m<<endl;

 

    }

    return 0;

}

0 0
原创粉丝点击