[贪心专题]A.看电视
来源:互联网 发布:树状图 软件 编辑:程序博客网 时间:2024/05/18 06:53
问题 A: 看电视
时间限制: 1 Sec 内存限制: 32 MB题目描述
暑假到了,小明终于可以开心的看电视了。但是小明喜欢的节目太多了,他希望尽量多的看到完整的节目。
现在他把他喜欢的电视节目的转播时间表给你,你能帮他合理安排吗?
现在他把他喜欢的电视节目的转播时间表给你,你能帮他合理安排吗?
输入
输入包含多组测试数据。每组输入的第一行是一个整数n(n<=100),表示小明喜欢的节目的总数。
接下来n行,每行输入两个整数si和ei(1<=i<=n),表示第i个节目的开始和结束时间,为了简化问题,每个时间都用一个正整数表示。
当n=0时,输入结束。
接下来n行,每行输入两个整数si和ei(1<=i<=n),表示第i个节目的开始和结束时间,为了简化问题,每个时间都用一个正整数表示。
当n=0时,输入结束。
输出
对于每组输入,输出能完整看到的电视节目的个数。
样例输入
121 33 40 73 815 1915 2010 158 186 125 104 142 90
样例输出
5
题目解释
中文题就不解释题意啦!简单说一下做法吧:为了让小明看到更多的电视节目,每个节目结束时间越早,后面能看的节目数量相对就会更多,因此可以先对数据进行一次排序,按照结束时间由早到晚排,然后比较当前结束时间与下一个节目的开始时间是否冲突,不冲突则计数加一,最后输出计数就完成啦!
具体代码
#include<stdio.h>#include<stdlib.h>typedef struct tv{//建立结构体,包含开始时间与结束时间两个整型变量int start;int end;}tv;int sort(const void *a,const void *b){//qsort结构体排序tv *c = (tv*)a;tv *d = (tv*)b;if(c->end != d->end)return(c->end - d->end);elsereturn(c->start - d->start);}int main(){int t;while(scanf("%d", &t) && t){struct tv A[t];int i, n, j;//n为计数for(i = 0; i < t; ++i){scanf("%d%d", &A[i].start, &A[i].end);//读入数据}qsort(A,t,sizeof(tv),sort);//对于结束时间进行qsort排序for(i = 0, n = 1; i < t;i = j){for(j = i+1; j < t; ++j){if(A[i].end <= A[j].start){++n;break;}}}printf("%d\n", n);}}
附言
这里是一个正在掉头发的咸鱼acmer!写博客就是因为太咸鱼啦 同为秃子的男盆友看不下去 说要监督我QwQ 也欢迎大家来监督哦!菜狗也想和大家一起学习!欢迎大家发现错误 尽情的指责我吧!
阅读全文
0 0
- [贪心专题]A.看电视
- 贪心问题 A: 看电视
- 二分贪心专题A
- 【XMUT】贪心专题A
- 贪心算法--看电视
- 贪心算法--暑假不A题 看电视(1004 problem E)
- 看电视
- 看电视
- 看电视
- 看电视
- 看电视
- 贪心专题
- 贪心专题
- 贪心专题
- 暑假集训——贪心专题——A题
- 贪心入门题——看电视(区间调度问题)
- 湖北民族学院oj 1690(贪心) 之 看电视
- 【贪心例题专题】&贪心~越多越好哟~&
- DNS服务器的安装与部署
- 计算n的阶乘
- 【UVA11987】Almost Union-Find
- 查找
- java定时任务接口ScheduledExecutorService
- [贪心专题]A.看电视
- python+mysql:简单的数据库控制脚本
- 在mac上DbVisualizer图形化客户端配置连接Hive
- 注解小结
- 质因数分解
- 树状数组——【模板】树状数组1
- Master原理剖析与源码分析:Master状态改变处理机制原理剖析与源码分析
- sqoop
- HDOJ2028_Lowest Common Multiple Plus