XidianOJ 1091 看Dota視頻的V8

題目描述

V8做爲一個Dota lover,由於在某次和小夥伴開黑對戰「簡單的電腦」時被電腦血虐,V8痛定思痛以後,發現是時候學一發Dota教學視頻了。如今,V8在網上找到了n個Dota直播教學視頻,而且知道每一個視頻的開始時間和結束時間,如今V8想知道他做出合理安排以後他最多看多少個完整的Dota視頻。ios

 

輸入

多組數據,n==0時文件結束。每組數據第一行一個數字n(1<=n<=10^3),接下來n行每行兩個數字li,ri,表示視頻的開始時間和結束時間(0<=li<=ri<=2*10^4)。ide

 

輸出

每組數據一行輸出,表示V8最多能看到的完整教學視頻的數量。spa

--正文code

貪心的線段覆蓋問題,換了個皮視頻

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;

struct VideoNode {
    int begin;
    int end;
};

struct VideoNode video[1001];

int cmp(struct VideoNode v1,struct VideoNode v2){
    return (v1.end < v2.end);
}

int main(){
    int n;
    while (scanf("%d",&n) != EOF){
        if (n == 0) break; 
        int i;
        for (i=0;i<n;i++){
            int begin,end;
            scanf("%d %d",&begin,&end);
            video[i].begin = begin;
            video[i].end = end;
        } 
        sort(video,video+n,cmp);
        int total = 0,time = -1;
        for (i=0;i<n;i++){
            if (video[i].begin >= time){
                time = video[i].end; 
                total ++;
            }
        }
        printf("%d\n",total);
    }
    return 0;
}
相關文章
相關標籤/搜索