码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-03-18 00:16:17      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:

表示你喜欢看的节目的总数,然后是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 (看电视贪心)

标签:

原文地址:http://www.cnblogs.com/zstu-jack/p/5289834.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!