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;
    }
    

      

  • 相关阅读:
    linux部署tomcat服务器
    如何设计功能测试
    sql语句字符串型日期转化为数字类型
    关于软件测试的基础知识
    关于数据库的一些基本知识
    py,先导,--L
    selenium,常用网站
    maven,使用
    移动自动化,appium,java--L
    接口,自动化,java--L
  • 原文地址:https://www.cnblogs.com/SK1997/p/9002232.html
Copyright © 2011-2022 走看看