成都东软学院ACM2017冬季校赛 没办法,简单题都被平头和祥抢完了。只有我来给你们出一道难题了,但是请你们相信我,我是一个良心学长。
来源:互联网 发布:水果网络营销策划方案 编辑:程序博客网 时间:2024/04/28 07:53
问题 C: Callous problem
题目描述:没办法,简单题都被平头和祥抢完了。只有我来给你们出一道难题了,但是请你们相信我,我是一个良心学长。
咳咳咳。说正题!
相信大家在寒暑假的时候在家基本都是看电视,当然,作为一个新时代的ACMer,“哪吒”学姐肯定会看很多的动画片:哪吒传奇、哪吒闹海、哪吒前传等等,而现在的电视机很高端,它能给你显示你喜欢看的动画片的播出时间表(比如9点30分少儿频道的哪吒闹海),“哪吒”学姐作为哪吒的忠实粉丝,所以她想尽可能多的看完整的哪吒动画片节目,那问“哪吒”学姐能最多看多少节目呢?
输入:
测试数据有多组,对于每组测试数据:
第一行有一个整数n(n <= 100),表示你喜欢看的节目的总数
然后是n行数据,每行包括两个整数li,ri,分别表示第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
解题思路:
本提要求算出学姐最多能完全看完的节目数,本题是一个区间贪心问题 我们可以将每个节目按结束时间从大到小排序, 因为最早结束的节目一定是最优的, 这样排序后第一个节目我们一定会选, 因为第一个节目的结束时间一定是最早的,可以定义一个结构体数组 struct node{int l,r}node[1000];l和r分别保存节目的开始和结束时间 排好序过后 就可以用一个for循环遍历一次结构体数组。当下一个节目的开始时间大于等于上一个节目的结束时间就ans++,遍历结束过后就可以直接输出答案ans了。
下面是题解代码:
#include<cstdio>
#include <algorithm>
using namespace std;
struct node
{
int l,r;
}num[1000];
bool cmp(node a,node b)
{
if(a.r<b.r)
return true;
else if(a.r==b.r)
{
if(a.l<b.l)
return true;
return false;
}
return false;
}
int main()
{
int n,ans,k;
while(scanf("%d",&n)&&n)
{
for(int i =1;i<=n;i++)
scanf("%d%d",&num[i].l,&num[i].r);
sort(num+1,num+n+1,cmp);
ans=0;
k=1;
for(int i =2;i<=n;i++)
{
if(num[k].r<=num[i].l)
{
ans++;
k=i;
}
}
printf("%d\n",ans+1);
}
return 0;
}
- 成都东软学院ACM2017冬季校赛 没办法,简单题都被平头和祥抢完了。只有我来给你们出一道难题了,但是请你们相信我,我是一个良心学长。
- 一个噩梦,还好你们看到了,要不我可能真的和你们永别了。。。
- 你们来了又走了,我的心丢了
- 亲们,你们还相信爱情么,反正我是不信了
- 好久没来,想死你们了!
- 我看出来了,你们个个都身怀绝技!
- 我要嫁给一个程序员你们怎么看?
- 你们这群渣渣,让我来拯救你们的灵魂吧!
- 既然没有人来说出真相,那就只有我来了
- 成都东软学院2016年ACM冬季校赛正式赛 - 题解
- Contest1261 - 成都东软学院2016年ACM冬季校赛热身赛 - 题解
- 我说的话你们都愿意相信吗?
- 我看过的书籍,推荐给你们
- 亲,我给你们的开幕式“好评”
- 如果你们由我来领导
- 我的积分为什么没有了,你们是不是给我积分清零了呢
- [33期] 我不管你们信不信,反正我是信了!
- 你们闪开,我要放大了
- Vim常用操作
- 图标输入框(二)
- 如何给eclipse安装svn插件
- java-机器人的运动范围
- hive安装及mysql配置
- 成都东软学院ACM2017冬季校赛 没办法,简单题都被平头和祥抢完了。只有我来给你们出一道难题了,但是请你们相信我,我是一个良心学长。
- node+express+mysql服务端环境搭建
- 启动springBoot,使用h2内嵌数据库,修改hibernate方言
- 宏
- 第十三周作业:JAVA集合框架
- 最大子序列和问题的求解
- Qt源码在VC环境下编译(以VC14下Qt5.9.1和Qt5.4.0为例,包含icu和QtWebkit模块)
- 如何在不联网的情况下ping通主机与虚拟机
- WKWebView学习笔记