zoukankan      html  css  js  c++  java
  • 问题 : 看电视

    题目描述

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

    输入

    输入包含多组测试数据。每组输入的第一行是一个整数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

    贪心问题,先把结束时间从小到大排序,一一选取,如果后一个开始时间大于前一个结束时间,个数加一。

    代码:

    #include<stdio.h>
    #define N 120
    struct time {
        int str;
        int end;
    }a[N],s;
    int main()
    {
        int i,j,t,n,ans;
        while(scanf("%d",&n),n!=0)
        {
            ans=1;
            for(i=0;i<n;i++)
                scanf("%d %d",&a[i].str,&a[i].end);
            for(i=0;i<n-1;i++)
            {
                for(j=i+1;j<n;j++)
                    if(a[i].end>a[j].end)
                    {
                        s=a[i];
                        a[i]=a[j];
                        a[j]=s;
                    }
            }
            t=a[0].end;
            for(i=1;i<n;i++)  
            {  
                if(a[i].str>=t)  
                {  
                    ans++;  
                    t=a[i].end;  
                }  
            }  
            printf("%d
    ",ans);
        }
        return 0;
    }



  • 相关阅读:
    Qt发送事件与自定义事件
    Qt文本流和数据流
    Qt文件操作
    Qt 布局管理器
    Qt 标准对话框
    Qt 对话框QDailog及其类型
    Qt 对象间的父子关系
    Qt 信号与槽
    Qt 计算器界面实现
    C++ 多态、虚函数(virtual 关键字)、静态联编、动态联编
  • 原文地址:https://www.cnblogs.com/zyq1758043090/p/10003049.html
Copyright © 2011-2022 走看看