首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

hud_2037-现年暑假不AC

2013-02-24 
hud_2037-今年暑假不AC/*题目大意:给出节目的开始和结束时间,求最多能看多少完整节目 *解题思路:首先按节

hud_2037-今年暑假不AC

/*题目大意:给出节目的开始和结束时间,求最多能看多少完整节目 *解题思路:首先按节目时间排序,因为必须是完整节目,所以要选取上一节目结束后 *最早开始并尽快结束的节目。 */#include <cstdio>#include <cstring>#include <algorithm>using namespace std;#define MAX 101struct node {    int x, y;} a[MAX], b[MAX];bool cmp(node a, node b) {    if( a.x != b.x ) {        return a.x < b.x;    } else {        return a.y < b.y;    }}int main(int argc, char const *argv[]) {#ifndef ONLINE_JUDGE    freopen("test.in", "r", stdin);#endif    int cnt, ans;    while( scanf("%d", &cnt), cnt ) {        ans = 0;        for(int i = 0; i < cnt; i ++)            scanf("%d %d", &a[i].x, &a[i].y);        sort(a, a + cnt, cmp);        for(int i = 0; i < cnt; i ++) {            if( !i ) b[++ans] = a[i];            else {                if( a[i].x >= b[ans].y ) {//开始时间大于上节目结束时间,新增                    b[++ans] = a[i];                } else if( a[i].y < b[ans].y ) {//如果结束时间小于上节目结束时间,替换                    b[ans] = a[i];                }            }        }        printf("%d\n", ans);    }    return 0;}

热点排行