• HDU


    HDU2037 今年暑假不AC  贪心算法

    大意:

    每次测试数据输入一个n,然后输入n对的电视节目播放时间:开始时间及结束时间,

    求这个人能看的最多的完整的节目数。

    解题思路:

    对于这道解题,是对每个节目的结束时间排序,目的是使剩余时间留下,再判断还能看几个节目。对节目时间的排序结束后,依次判断,这次要看的节目的开始时间是否大于上次看的节目的结束时间,若是大于,则这个节目时可以完整观看的,若是小于则是不能完整观看的,所以跳到下一个节目继续判断 。

    例子:

    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

    对结束时间进行排序后的数组如下:从左到右为i=0~i=n-1

       1    3    0    3    2    5    6    4   10    8   15   15

       3    4    7    8    9   10   12   14   15   18   19   20

    然后进行依次判断发现有5个节目时可以完整观看的,即上面的5组红色字体,接着便输出结果。

        

    5

    Code:

    //HDU2037 今年暑假不AC   

    #include<stdio.h>

    #include<algorithm>

    using namespace std;

    int n;

    struct show

    {

        int s;

        int e;

    }pro[110];

    bool cmp(show a,show b)

    {

        return a.e<b.e;

    }

    int main()

    {

        while(scanf("%d",&n)!=EOF&&n)

        {

            int cnt=1,i;

            memset(pro,0,sizeof(pro));

            for(i=0;i<n;i++)

            {

                scanf("%d%d",&pro[i].s,&pro[i].e);

            }

            sort(pro,pro+n,cmp);

            int tmp=pro[0].e;

            for(i=1;i<n;i++)

                {

                    if(pro[i].s>=tmp)

                        {

                        cnt++;

                        tmp=pro[i].e;

                        }

                }

            printf("%d ",cnt);

        }

        return 0;

    }

  • 相关阅读:
    分布式文件存储系统-HDFS
    Java中的常用类
    分布式协调框架ZooKeeper
    【Redis】Redis慢查询
    kubectl工具管理应用
    kubectl命令管理
    To check your hdfs port use the following command in linux
    hadoop HDFS常用文件操作命令
    在scala中关于split以及正则表达式
    pandas入门之Series
  • 原文地址:https://www.cnblogs.com/yzm10/p/7011222.html
Copyright © 2020-2023  润新知