hdu 2037 今年暑假不AC (看电视贪心)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdu 2037 今年暑假不AC (看电视贪心)相关的知识,希望对你有一定的参考价值。

表示你喜欢看的节目的总数,然后是n行数据,每行包括两个数据Ti_s,Ti_e (1<=i<=n),分别表示第i个节目的开始和结束时间,为了简化问题,每个时间都用一个正整数表示。n=0表示输入结束,不做处理。求最多看的电视数目

将电视按结束时间排序,遍历电视开始时间是否小于 记录的上个电视的结束时间

1 for(int i = 1 ; i < n ; i ++){
2         if(tv[i].s >= endtime){
3             cnt++;
4             endtime = tv[i].e;    
5         }
6     } 
#include<cstdio>
#include<iostream>
#include<queue>
#include<string>
#include<math.h>
#include<stack>
#include<cstdlib>
#include<set>
#include<map>
#include<cstring>
#include<vector>
#include<algorithm>
#include<cctype>
#include<sstream>

const double PI = acos(-1.0);
typedef long long ll;
using namespace std; 

int n;

struct Node{
    int s,e;
};
Node tv[110];
bool cmp(const Node& lhs,const Node& rhs){
    return lhs.e < rhs.e;
}
void solve(){
    int cnt = 1;
    int endtime = tv[0].e;
    for(int i = 1 ; i < n ; i ++){
        if(tv[i].s >= endtime){
            cnt++;
            endtime = tv[i].e;    
        }
    } 
    printf("%d\n",cnt);
} 
int main(){
    while(scanf("%d",&n) != EOF && n){
        for(int i = 0 ; i < n ; i ++)    scanf("%d %d",&tv[i].s,&tv[i].e);
        sort(tv,tv+n,cmp);
        solve();        
    }    
    return 0;
}

 

以上是关于hdu 2037 今年暑假不AC (看电视贪心)的主要内容,如果未能解决你的问题,请参考以下文章

HDU2037今年暑假不AC(贪心)

贪心HDU2037:今年暑假不AC

hdu2037今年暑假不AC(贪心算法)

HDU - 2037 今年暑假不AC

HDU 2037 今年暑假不AC (贪心)

HDU 2037 今年暑假不AC