会场安排问题

时间限制:3000 ms  |  内存限制:65535 KB
难度:4
描写叙述
学校的小礼堂每天都会有很多活动。有时间这些活动的计划时间会发生冲突,须要选择出一些活动进行举办。小刘的工作就是安排学校小礼堂的活动,每一个时间最多安排一个活动。如今小刘有一些活动计划的时间表,他想尽可能的安排很多其它的活动,请问他该怎样安排。

输入
第一行是一个整型数m(m<100)表示共同拥有m组測试数据。

每组測试数据的第一行是一个整数n(1<n<10000)表示该測试数据共同拥有n个活动。

随后的n行。每行有两个正整数Bi,Ei(0<=Bi,Ei<10000),分别表示第i个活动的起始与结束时间(Bi<=Ei)
输出
对于每一组输入,输出最多可以安排的活动数量。

每组的输出占一行

例子输入
2
2
1 10
10 11
3
1 10
10 11
11 20
例子输出
1
2
提示

注意:假设上一个活动在t时间结束。下一个活动最早应该在t+1时间開始

算法分析:

不重叠区间调度问题。通常会有三种可想到的算法:

1.在可选的工作中,每次都选取结束时间最早的工作。

2.在可选的工作中。每次都选取用时最短的工作。

3.在可选的工作中,每次都选取与最少可选工作有重叠的工作。

事实证明,仅仅有一才是正确经得住考验的。

对于第一种算法,该算法在选取了同样数量的更早開始的工作时,其终于结束时间不会比其它方案更晚。

也就是说。最早结束的那条区间后面的数量一定大于等于其它后面区间的区间数量。

详细证明请參考:http://blog.csdn.net/luoweifu/article/details/18195607

代码例如以下:

#include<iostream>
#include<utility>
#include<algorithm>
using namespace std;
typedef pair<int,int>name;
name arr[10005];
int cmp(name a,name b)
{return a.second<b.second;}
int main()
{
int N,n,i,ans,t;
cin>>N;
while(N--)
{
cin>>n;
for(i=0;i<n;i++)
cin>>arr[i].first>>arr[i].second;
sort(arr,arr+n,cmp);
ans=0,t=-1;
for(i=0;i<n;i++){
if(t<arr[i].first)
{ans++;t=arr[i].second;}
}
cout<<ans<<endl;
}
return 0;
}

由于sort默认对pair类型的first排序。

。坑爹的,WA一个。实现。

版权声明:本文博客原创文章。博客,未经同意,不得转载。

NYOJ 14 场地安排(它可以被视为一个经典问题)的更多相关文章

  1. NYOJ 14 场地安排

    /* 中国标题的含义: 中国的翻译: 标题效果:寻求预定场地的最大数量,只有一个活动可以安排时间 解决问题的思路:然后使用结构数.之后再构建一个排序,排序结束时间活动.然后基于开始时间为大于一个事件的 ...

  2. 基于贪心算法的几类区间覆盖问题 nyoj 12喷水装置(二) nyoj 14会场安排问题

    1)区间完全覆盖问题 问题描述:给定一个长度为m的区间,再给出n条线段的起点和终点(注意这里是闭区间),求最少使用多少条线段可以将整个区间完全覆盖 样例: 区间长度8,可选的覆盖线段[2,6],[1, ...

  3. nyoj 14 会场安排问题(贪心专题)java

    会场安排问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办.小刘的工 ...

  4. nyoj 14 会场安排问题(贪心专题)

    会场安排问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办.小刘的工 ...

  5. nyoj 14 会场安排问题

    会场安排问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办.小刘的工 ...

  6. NYOJ 14 会场安排问题(也算是经典问题了)

    会场安排问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办.小刘的工作就 ...

  7. 读书笔记 effective c++ Item 1 将c++视为一个语言联邦

    Item 1 将c++视为一个语言联邦 如今的c++已经是一个多重泛型变成语言.支持过程化,面向对象,函数式,泛型和元编程的组合.这种强大使得c++无可匹敌,却也带来了一些问题.所有“合适的”规则看上 ...

  8. nyoj 题目14 会场安排问题

    会场安排问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办.小刘的工 ...

  9. NYOJ 14 贪心解题报告

    会场安排问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办.小刘的工 ...

随机推荐

  1. [Linux]history 显示命令的运行时间

    显示线时间历史命令 这里的环境是centos5.8 vim ~/.bashrc 或者 ~/.bash_profile 添加 export HISTTIMEFORMAT="%F %T &quo ...

  2. LeetCode: Palindrome Partitioning [131]

    [称号] Given a string s, partition s such that every substring of the partition is a palindrome. Retur ...

  3. MVC简单的认识

    学习一个新知识,首先要了解的就是以下几个问题,它是什么?它能干什么?使用它有什么优点?这篇文章就环绕这几个问题来展开讨论. mvc不是一种编程语言,严格来说.它都不算是一门技术.它是开发软件时使用的一 ...

  4. 【从零学习openCV】IOS7根据人脸检测

    前言: 人脸检測与识别一直是计算机视觉领域一大热门研究方向,并且也从安全监控等工业级的应用扩展到了手机移动端的app.总之随着人脸识别技术获得突破,其应用前景和市场价值都是不可估量的,眼下在学习ope ...

  5. JS它DOM

    DOM:document object model.文档对象模型.它主要由许多节点.而基于JS对象的一切视角,DOM核心是节点对象和操作方法的属性.从下面三方面来介绍DOM. 一.节点查找与操作 这部 ...

  6. 解决LINUX vncserver 启动 could not open default font &#39;fixed&#39;错.

    安装vncserver例如,会发生以下错误:  vncext:      VNC extension running!  vncext:      Listening for VNC connecti ...

  7. android 简单的登录

    一直都知道WEB通过登录后session拿着回答,如今,安卓不知道怎么弄的. 研究了一下,它记录.直接在代码: server结束: index.jsp <%@page import=" ...

  8. Azure VM Public IP设置

    Azure虚拟机的Public IP是用于客户端直连云中的虚拟机,可以认为是一个外网IP,一般我们为虚拟机设置终结点,例如HTTP的80端口,如果使用Public IP可以不使用Azure Porta ...

  9. SVD奇异值分解的几何物理意义资料汇总

    学习SVD奇异值分解的网上资料汇总: 1. 关于svd的一篇概念文,这篇文章也是后续几篇文章的鼻祖~ http://www.ams.org/samplings/feature-column/fcarc ...

  10. poj1083 思考题

    http://poj.org/problem?id=1083 Description The famous ACM (Advanced Computer Maker) Company has rent ...