题目描述

理论上,Nova君是个大闲人,但每天还是有一大堆事要干,大作业啦,创新杯啦,游戏啦,出题坑人啦,balabala......然而精力有限,Nova君同一时间只能做一件事,并不能一心二用。假设现在有N项工作等待Nova君完成,分别在 Si 时刻开始,在 Ti 时刻结束,对于每项工作可以选择做或者不做,但不可以同时选择时间重叠的工作(即使是开始的瞬间和结束的瞬间重叠也是不允许的)。Nova君自然希望尽量多做一些事情,那么最多能做几件事呢?

输入

多组测试数据(数据组数不超过10),对于每组数据,第一行输入一个正整数N,代表可选的工作数量,接下来输入N行,每行两个正整数,代表第 i 个工作的开始时间 si 和结束时间 ti 。

1<=N<=100000 | 1<=si<=ti<=10^9

输出

对于每组数据,输出一行,为可完成的工作的最大数量。

输入样例

5
1 3
2 5
4 7
6 9
8 10

输出样例

3
题目来源 :http://biancheng.love/contest/23/problem/E/index
解题思路:按照活动结束时间进行排序,先结束的排在前列,后结束的排在后面。
每次放入先结束的活动,将其的结束时间和下一个活动的开始时间进行比较,如果满足下一个活动在上个活动结束之后开始那么将该活动放入进来,依次进行操作,直到最后一个活动为止。输出结果为活动最多数目。
本题代码:
 #include <bits/stdc++.h>
#define max_size 10010
using namespace std;
int order[max_size]; struct node{
int start,end;
int id;
}; node act[max_size]; bool cmp(node a,node b)
{
return a.end<b.end;
}; int main()
{
int n;
while(~scanf("%d",&n))
{
for(int i=;i<n;i++)
{
scanf("%d%d",&act[i].start,&act[i].end);
act[i].id=i+;
}
sort(act,act+n,cmp);
order[]=;
int number=;
for(int i=;i<n;i++)
{
if(act[i].start>=act[order[number-]].end)
order[number++]=i;
}
cout<<number<<endl;
}
}
在之前的博客文章讲解活动安排的区别点:
1、之前博客讲述了dp求活动安排问题,也讲述了使用贪心求解。但是之前的问题默认输入的活动已经按照活动结束时间进行了排序,现在这个题目并没有排序。
2、之前的活动可以是下一个活动的开始正好是上一个活动的结束,但是这道题目要求不能够有重合。
下面给出之前博客的链接:http://www.cnblogs.com/zpfbuaa/p/4951105.html

忙碌的Nova君 (活动安排问题、贪心算法)的更多相关文章

  1. 51nod1428 活动安排问题 (贪心加暴力)

    1428 活动安排问题 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题  收藏  关注 有若干个活动,第i个开始时间和结束时间是[Si,fi),同一个教室安排的活动 ...

  2. 51nod 1428 活动安排问题 (贪心+优先队列)

    来源:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1428 首先按照开始时间从小到大排序. 其实只要维护一个结束时间的最 ...

  3. hdu 2037简单贪心--活动安排问题

    活动安排问题就是要在所给的活动集合中选出最大的相容活动子集合,是可以用贪心算法有效求解的很好例子.该问题要求高效地安排一系列争用某一公共资源的活动.贪心算法提供了一个简单.漂亮的方法使得尽可能多的活动 ...

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

    今年暑假不AC Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submi ...

  5. A - 活动安排问题(贪心)

    A - 活动安排问题 有若干个活动,第i个开始时间和结束时间是[Si,fi),同一个教室安排的活动之间不能交叠,求要安排所有活动,最少需要几个教室?  Input第一行一个正整数n (n <= ...

  6. [C++] 贪心算法之活动安排、背包问题

    一.贪心算法的基本思想 在求解过程中,依据某种贪心标准,从问题的初始状态出发,直接去求每一步的最优解,通过若干次的贪心选择,最终得出整个问题的最优解. 从贪心算法的定义可以看出,贪心算法不是从整体上考 ...

  7. 贪心算法求解活动安排<算法分析>

    一.实验内容及要求 1.要求按贪心算法原理求解问题: 2.要求手工输入s[10]及f[10],其中注意自己判断s[i]<f[i]: 3.要求显示所有活动及最优活动安排的i事件列表.二.实验步骤  ...

  8. C++贪心算法实现活动安排问题

    问题描述: 设有n个活动的集合E={1,2,…,n},其中,每个活动都要求使用同一资源,而在同一时间内只有一个活动能使用这一资源.每个活动i都有一个要求使用该资源的起始时间si和一个结束时间fi,且s ...

  9. hdu2037-----------贪心, 活动安排问题

    http://acm.hdu.edu.cn/showproblem.php?pid=2037(简单贪心-----活动安排) #include<iostream> #include<a ...

随机推荐

  1. DDD:如何更好的使用值对象

    背景 大师们让我们多使用“值语义”的对象(并非一定是是值对象),我们工作中也没有少使用(int.bool.date等等),只是大多数人都没有多的自定义“值语义”的类型(我也其中之一),本文不说其它的, ...

  2. java io系列15之 DataOutputStream(数据输出流)的认知、源码和示例

    本章介绍DataOutputStream.我们先对DataOutputStream有个大致认识,然后再深入学习它的源码,最后通过示例加深对它的了解. 转载请注明出处:http://www.cnblog ...

  3. android resources使用总结

    http://developer.android.com/guide/topics/resources/more-resources.html http://developer.android.com ...

  4. VM不能连入局域网

    如果选了Host-only,那么虚拟机与跑虚拟机的宿主就无法连通了. 可以选用Bridged模式,那么虚拟机与跑虚拟机的主机连通了

  5. SQL Server里强制参数化的痛苦

    几天前,我写了篇SQL Server里简单参数化的痛苦.今天我想继续这个话题,谈下SQL Server里强制参数化(Forced Parameterization). 强制参数化(Forced Par ...

  6. 记第二次使用php开发项目之绝不重复自己

    严格说起来,自己并非一个合格的php程序员.第一次使用php开发,不过是因为游戏上线,需要一个统计管理后台和GM后台,因为招聘已经来不及,所以我就上前线了! 凭着对php语法的一点点记忆(大学的时候学 ...

  7. .Net魔法堂:log4net详解

    一.作用 提供一个记录日志的框架,可以将日志信息记录到文件.控制台.Windows事件日志和数据库(MSSQL.Acess.Oracle.DB2和SQLite等). 二.先看看示例,感受一下吧   c ...

  8. 实例对比剖析c#引用参数的用法

    c#引用参数传递的深入剖析值类型的变量存储数据,而引用类型的变量存储对实际数据的引用.(这一点很重要,明白了之后就能区分开值类型和引用类型的差别) 在参数传递时,值类型是以值的形式传递的(传递的是值, ...

  9. cURL和HTTPie

    http://lingxiankong.github.io/blog/2014/08/19/curl-httpie/ 前两天在网上看到一个号称比cURL更牛逼的命令行工具HTTPie,提供命令行交互方 ...

  10. CMS如何提供XML格式的接口

    在做APP的过程中,需要服务端的接口数据. 是用Json格式还是Xml格式呢,很多人会说还是xml习惯. 然而PHP更适合返回的还是json,php核心库中就包含了json编码的函数,可以直接将数组转 ...