【贪心】电视节目安排

问题 W: 【贪心】电视节目安排

时间限制: 1 Sec  内存限制: 64 MB
提交: 22  解决: 16
[提交][状态][讨论版]

题目描述

李旭琳发现小墨老师在班上是最顽劣的学生(没有之一),但他也有安静的时候,例如在看电视的时候。像什么“谍战剧”啊,“翻拍剧”啊,“婆媳戏”啊,“后宫剧”啊都是他的最爱。他甚至会事先查询所有喜欢看的电视节目的转播时间表并煞有介事的用红蓝铅笔列出计划,然后合理安排,以看到尽量多的完整节目。

输入

输入数据包含多个测试实例,每个测试实例的第一行只有一个整数n(n≤100),表示喜欢看的节目的总数,然后是n行数据,每行包括两个数据Ti_s,Ti_e (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 <iostream>
#include <cstdio>
#include <algorithm>

using namespace std;

struct node{
    int begin;
    int end;
};
node tt[105];

int cmp(node a,node b){
    return a.end<b.end||a.end==b.end&&a.begin<b.begin;
}

int main()
{
    int n;
    int s=0;
    int k;
    while(scanf("%d",&n)!=EOF&&n){
        for(int i=0;i<n;i++){
        scanf("%d %d",&tt[i].begin,&tt[i].end);
        }
        sort(tt,tt+n,cmp);
        s+=1;
        k=0;
        for(int i=1;i<n;i++){
            if(tt[i].begin>=tt[k].end){
                s++;
                k=i;
            }
        }
        printf("%d\n",s);
        s=0;
    }

    return 0;
}

/**************************************************************
    Problem: 2227
    User: zz13
    Language: C++
    Result: 正确
    Time:0 ms
    Memory:1700 kb
****************************************************************/
 
时间: 2024-08-24 14:53:18

【贪心】电视节目安排的相关文章

hdu2037今年暑假不AC(贪心,活动安排问题)

今年暑假不AC Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submission(s) : 15   Accepted Submission(s) : 13 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description “今年暑假不AC?”“是的.”“那你干什么呢?”“看世界杯

使用GNU/Linux播放电视节目

目前,生活中很多事情都可以在电脑前完成,学习.工作.音乐.视频等.如果也可以在电脑上收看有线电视节目的话,那就更好了.为此,我购买了圆刚视频采集卡AverMedia C725B.如下图所示. 官方给出的此卡介绍为(详见这里): C725标清采集卡是一张支持AV端子.S端子以及立体声输入的PCI-E撷取卡,可将PAL.NTSC和SECAM等模拟格式影像数字化,撷取并另存为 无压缩的AVI格式档案.C725标清采集卡随附的软件开发工具包(SDK)提供常用功能,能帮助开发者或系统整合商轻松且有效率地完

Ajax-08 跨域获取最新电视节目清单实例

目标 请求江西网络广播电视台电视节目 URL:http://www.jxntv.cn/data/jmd-jxtv2.html 分析 1.从Http头信息分析得知,器服务端未返回响应头Access-Control-Allow-xxxx 相关信息,所以只能使用JSONP方式 2.从返回值内容中分析得知,其返回值永远是:list(响应内容),即:由于服务器将函数名写死为list,所以指定callback在此程序中无效. 实现 get_tv_list.html <!DOCTYPE html> <

如何做电视节目直播(电视台视频直播)实现手机微信都能观看

STEP1 . 硬件准备及设备连接 场景说明: 1.电视节目直播一般是用于电视信号的直播,对一个电视频道的的信号进行直播,常用于电视台.校园电视节目等: 2.电视信号直播,实现在微信中直接观看(实现PC端.手机端(Android安卓/iOS苹果).平板端.微信端.智能电视端都可以直接观看): 3.用户无须自己进行程序方面的开发,可以直接引用POLYV自带的观看页或扫二维码观看: 4.用户可以将此直播页面直接分享到朋友圈,也可发布到微信公众号中,观看者打开就可以直接观看直播画面. 5.特别提示:P

影视娱乐类API调用的代码示例合集:NBA赛事、电视节目等

以下示例代码适用于 www.apishop.net 网站下的API,使用本文提及的接口调用代码示例前,您需要先申请相应的API服务. NBA赛事:NBA篮球赛事赛程相关信息 电视节目:央视及各地卫视的电视节目时间表,包括本周及下周的电视节目内容 **API Shop(apishop.net)提供多达50款的常用第三方API,可以从github上下载代码示例合集:https://github.com/apishop/All-APIs** 以上接口均包含PHP.Python.C#和Java等四种语言

[贪心入门]活动安排问题之二

有若干个活动,第i个开始时间和结束时间是[Si,fi),活动之间不能交叠,要把活动都安排完,至少需要几个教室? 分析:能否按照之一问题的解法,每个教室安排尽可能多的活动,即按结束时间排序,再贪心选择不冲突的活动,安排一个教室之后,剩余的活动再分配一个教室,继续贪心选择…… 反例: A:[1,2)  B:[1,4) C:[5,6) D:[3,7) 已经按结束时间排好顺序,我们会选择教室1: A C教室2:  B教室3:  D需要3个教室.但是如果换一种安排方法,我们可以安排AD在一个教室,而BC在

贪心入门——活动安排问题

贪心入门的几个例题来自51nod 问题描述 有若干个活动,第i个开始时间和结束时间是[Si,fi),只有一个教室,活动之间不能交叠,求最多安排多少个活动? 输入 第1行:1个数N,线段的数量(2 <= N <= 10000) 第2 - N + 1行:每行2个数,线段的起点和终点(-10^9 <= S,E <= 10^9) 输出 输出最多可以选择的线段数量. 输入示例 3 1 5 2 3 3 6 输出示例 2 求解思路 按照活动的结束时间早的优先 算法代码 #include <

[贪心入门]活动安排问题

有若干个活动,第i个开始时间和结束时间是[Si,fi),只有一个教室,活动之间不能交叠,求最多安排多少个活动? 分析: 我们就是想提高教室地利用率,尽可能多地安排活动.考虑容易想到的几种贪心策略: (1) 开始最早的活动优先,目标是想尽早结束活动,让出教室.然而, 这个显然不行,因为最早的活动可能很长,影响我们进行后面的活动.例如活动开始和结束时间分别为[0, 100), [1,2) ,[2, 3), [3, 4),[4,5],安排[0,100)的这个活动之后,其他活动无法安排,可是最优解是安排

贪心算法-活动安排问题

活动安排问题 问题描述 有n个需要使用同一资源的活动,且在同一时段只有一个活动能使用该资源. 每个活动i都有一个起始时间 si 和结束时间 fi ,且 si < ei .如果选择了活动 i,则它在半开时间区间 [si,ei) 内占用资源.若区间 [si, ei) 与区间 [sj,ej) 不相交,则称活动 i 与活动 j 是相容的. 该问题就是要安排这些活动使得尽量多的活动能不冲突地举行. 归纳: 活动安排问题就是要在所给的活动集合中选出最大的相容活动子集合. 解题思路 每次总是选择具有最早完成时