• [codeup]1126 Problem 问题 A: 看电视


    题目描述

    暑假到了,小明终于可以开心的看电视了。但是小明喜欢的节目太多了,他希望尽量多的看到完整的节目。
    现在他把他喜欢的电视节目的转播时间表给你,你能帮他合理安排吗?

    输入

    输入包含多组测试数据。每组输入的第一行是一个整数n(n<=100),表示小明喜欢的节目的总数。
    接下来n行,每行输入两个整数si和ei(1<=i<=n),表示第i个节目的开始和结束时间,为了简化问题,每个时间都用一个正整数表示。
    当n=0时,输入结束。

    输出

    对于每组输入,输出能完整看到的电视节目的个数。

    样例输入

    12
    1 3
    3 4
    0 7
    3 8
    15 19
    15 20
    10 15
    8 18
    6 12
    5 10
    4 14
    2 9
    0

    样例输出

    5

    AC代码:

     1 #include <stdio.h>
     2 #include <algorithm>
     3 #include <string.h>
     4 //贪心,按照节目开始的时间从晚到早排序,选择开始最晚的节目开始往前推 
     5 using namespace std;
     6 struct jiemu{
     7     int st;    
     8     int et;
     9 }; 
    10 bool cmp(jiemu a,jiemu b)
    11 {
    12     return a.st > b.st;
    13 }
    14 int main()
    15 {
    16     int n;
    17     int ret = 0;
    18     struct jiemu jiemu[200];
    19     while(scanf("%d",&n) != EOF)
    20     {
    21         if(n == 0)
    22         break;
    23         for(int i = 0;i < n;i++)
    24         {
    25             scanf("%d %d",&jiemu[i].st,&jiemu[i].et);
    26         }
    27         sort(jiemu,jiemu + n,cmp);
    28         int lastleft = jiemu[0].st;     //从最晚开始的节目开始计数,lastleft记录上次节目开始时间,之后符合条件的节目结束时间肯定小于他 
    29         ret = 0;
    30         ret++;
    31         for(int i = 1;i < n;i++)
    32         {
    33             if(jiemu[i].et <= lastleft)
    34             {
    35                 ret++;
    36                 lastleft = jiemu[i].st;
    37             }
    38         }
    39         printf("%d
    ",ret);
    40     }
    41     return 0;
    42 }
  • 相关阅读:
    js window对象
    js 静态私有变量
    [WPF][ListBox]鼠标拖拽多选,(Shift Key、Ctrl Key多选有效)(转)
    GitLab关于SSH的使用
    Git命令--保存用户名和密码
    正则表达式
    WPF创建SignalR服务端(转)
    wpf学习之(IValueConverter)
    silverlight数据绑定模式TwoWay,OneWay,OneTime的研究
    WPF样式学习三
  • 原文地址:https://www.cnblogs.com/Ponytai1/p/12270035.html
Copyright © 2020-2023  润新知