zoukankan      html  css  js  c++  java
  • 百炼oj-4151:电影节

    总时间限制: 
    1000ms
     
    内存限制: 
    65536kB
    描述

    大学生电影节在北大举办! 这天,在北大各地放了多部电影,给定每部电影的放映时间区间,区间重叠的电影不可能同时看(端点可以重合),问李雷最多可以看多少部电影。

    输入
    多组数据。每组数据开头是n(n<=100),表示共n场电影。
    接下来n行,每行两个整数(0到1000之间),表示一场电影的放映区间
    n=0则数据结束
    输出
    对每组数据输出最多能看几部电影
    样例输入
    8
    3 4
    0 7 
    3 8 
    15 19
    15 20
    10 15
    8 18 
    6 12 
    0
    
    样例输出
    3
    来源
    Guo Wei
    此题是贪心算法,只要先将所有电影按照结束时间从小到达排序,之后再遍历所有电影看下一部电影是否符合即可。
    #include <iostream>
    #include <algorithm>
    using namespace std;
    struct film
    {
        int begin;
        int end;
    };
    bool cmp(film a,film b)
    {
        if(a.end!=b.end)
        {
            return a.end<b.end; //按结束时间从小往大排序
        }
    }
    int main() {
        int num;
        film f[105];
        while(cin >> num && num != 0)
        {
            for(int i=0;i<num;i++)
            {
                cin>>f[i].begin>>f[i].end;//输入数据
            }
            int t = 1;
            sort(f,f+num,cmp);//排序
            int current_end = f[0].end;
            for(int i=1;i<num;i++)
            {
                if(f[i].begin>=current_end)
                {
                    current_end = f[i].end;
                    t++;
                }
            }
            cout<<t<<endl;
        }
        return 0;
    }
    

      

  • 相关阅读:
    Median Value
    237. Delete Node in a Linked List
    206. Reverse Linked List
    160. Intersection of Two Linked Lists
    83. Remove Duplicates from Sorted List
    21. Merge Two Sorted Lists
    477. Total Hamming Distance
    421. Maximum XOR of Two Numbers in an Array
    397. Integer Replacement
    318. Maximum Product of Word Lengths
  • 原文地址:https://www.cnblogs.com/SK1997/p/9002232.html
Copyright © 2011-2022 走看看