zoukankan      html  css  js  c++  java
  • HDOJ.2037 今年暑假不AC (贪心)

    今年暑假不AC

    点我挑战此题

    题意分析

    给出来n组节目的起止时间,让求出所最多能观看的完整节目个数。
    贪心策略:按照节目的结束时间升序排序,比较下一项的开始时间是否比上一项的结束时间大,是的话计数器+1,并且更新结束时间,否则的话继续判断下一项。直到遍历完整个节目单,输出计数器的值即可。
    注意:排好序后,默认第一个节目是看的,并且此时计数器为1。
    至于为何按照结束时间排序,下面出一个一个ppt,感兴趣的读者可以自己分析一下。
    贪心最重要的是选择合适的贪心策略,才能快准AC。

    贪心策略

    代码总览

    /*
        Title:HDOJ.2037
        Author:pengwill
        Date:2016-11-22
    */
    #include <iostream>
    #include <stdio.h>
    #include <map>
    #include <algorithm>
    using namespace std;
    struct time{
        int stat;
        int endt;
    }item[105];
    int cmp(time a,time b)
    {
        return a.endt<b.endt;
    }
    int main()
    {
        int n;
        while(scanf("%d",&n)!= EOF && n){
            int i;
            int cnt = 1,temp;
            for(i = 0;i<n;++i){
                scanf("%d %d",&item[i].stat,&item[i].endt);
            }
            sort(item,item+n,cmp);
            temp = item[0].endt;
            for(i= 0;i<n-1;i++){
                if(temp <= item[i+1].stat){
                    cnt++;
                    temp = item[i+1].endt;
                }
            }
            printf("%d
    ",cnt);
        }
        return 0;
    }
    
  • 相关阅读:
    Cocos2d-x之绘制线条
    Cocos2d-x之绘制填充不规则多边形
    unittest
    检查代码错误和代码风格问题
    命名
    二进制数据
    python 后台运行
    分页
    编码
    格式化
  • 原文地址:https://www.cnblogs.com/pengwill/p/7367217.html
Copyright © 2011-2022 走看看