Meetings 系列一

Time Limit: 2000/1000ms (Java/Others)

Problem Description:

 多年之后的广财ACM编协如日中天,下系多个部门,且编协成员几近过百。这一次,为了庆祝ACM编协近年飞速的发展,各部门都决定在同一天召开会议。请注意:这次由于资源紧张,仅申请到一个报告厅。现在需要你给出安排方案,使得同一天24小时内举行的会议场次尽可能多。
为了简化问题,作如下规定:
(1)每一场会议M(a,b)表示从a时刻开始,b时刻结束(其中,a,b都为整数且8 <= a < b <= 20);
(2)同一时段内报告厅仅允许一个部门进行开会,不同部门交接时可忽略不同场次交换耗费的时间。

Input:

输入包含多组测试数据,每组数据第一行输入整数n(0<n<=20)表示一共有n场会议要安排。下面n行依次输入每一场会议的开始跟结束时刻a,b。

Output:

每一组测试输出可以安排的场次的最大数目,占一行。

Sample Input:

3
12 15
12 13
14 18
5
11 12
13 18
18 20
13 16
16 17

Sample Output:

2
4
解题思路:贪心策略:将所有区间按右端点坐标(结束时间)从小到大排序,顺序处理每个区间。如果它与当前已选的所有区间都没有重叠,则选择该区间,否则不选。注意:起始时间和结束时间在8-20范围内。
算法证明--->博主:阳光日志
AC代码:
 #include<bits/stdc++.h>
using namespace std;
struct NODE{
int st,ed;
}node[];
bool cmp(NODE x,NODE y){
return x.ed<y.ed; //按结束时间早的升序排
}
int main()
{
int n,num,k,t,s,e;
while(cin>>n){
k=-;
for(int i=;i<=n;++i){
cin>>s>>e;
if(s>= && e<=){node[++k].st=s;node[k].ed=e;}
}
sort(node,node+k+,cmp);
num=t=;
for(int i=;i<=k;++i)
if(t<=node[i].st){num++;t=node[i].ed;}
cout<<num<<endl;
}
return ;
}

也可以使用STL中的pair<int,int>。AC代码:

 #include<bits/stdc++.h>
using namespace std;
int main()
{
int n,num,k,t,s,e;pair<int,int> itv[];
while(cin>>n){
k=-;
for(int i=;i<=n;++i){ //second记录起始时间,first记录结束时间
cin>>s>>e; //这样就按照结束时间早的升序排
if(s>= && e<=){itv[++k].second=s;itv[k].first=e;}
}
sort(itv,itv+k+);num=t=;
for(int i=;i<=k;++i)
if(t<=itv[i].second){num++;t=itv[i].first;}
cout<<num<<endl;
}
return ;
}

ACM_区间调度问题(贪心)的更多相关文章

  1. hdu 2037 - 今年暑假不AC(区间调度问题)

    题意:区间调度问题 解法:应用贪心算法,贪心的规则: 在可选的节目中,选取结束时间早的节目. 1: #include<stdlib.h> 2: #include<string.h&g ...

  2. Expm 7_2区间调度问题

    [问题描述] 给定n个活动,其中的每个活动ai包含一个起始时间si与结束时间fi.设计与实现算法从n个活动中找出一个最大的相互兼容的活动子集S. 要求:分别设计动态规划与贪心算法求解该问题.其中,对贪 ...

  3. 编程算法 - 区间调度问题 代码(C)

    区间调度问题 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 有n项工作, 每项工作分别在s时间開始, 在t时间结束. 对于每项工作能够选择參与 ...

  4. hdu2037 今年暑假不AC[贪心][区间调度问题]

    目录 题目地址 题干 代码和解释 参考 题目地址 hdu2037 题干 代码和解释 本题使用贪心.有三种贪心策略:开始时间最早,结束时间最早,用时最短.第二种是正确的策略,因为结束得越早,后面就可以有 ...

  5. codeforces Gym 100187F F - Doomsday 区间覆盖贪心

    F. Doomsday Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100187/problem/F ...

  6. UVa 10382 Watering Grass (区间覆盖贪心问题+数学)

    题意:有一块长为l,宽为w的草地,在其中心线有n个喷水装置,每个装置可喷出以p为中心以r为半径的圆, 选择尽量少的装置,把草地全部润湿. 析:我个去啊,做的真恶心,看起来很简单,实际上有n多个坑啊,首 ...

  7. 「LuoguP2434」 [SDOI2005]区间(贪心

    Description 现给定n个闭区间[ai, bi],1<=i<=n.这些区间的并可以表示为一些不相交的闭区间的并.你的任务就是在这些表示方式中找出包含最少区间的方案.你的输出应该按照 ...

  8. 任务调度问题(贪心) hdu4864

    传送门:http://acm.hdu.edu.cn/showproblem.php?pid=4864 The company hopes to maximize the number of the t ...

  9. poj3190区间类贪心+优先队列

    题意:每个奶牛产奶的时间为A到B,每个奶牛产奶时要占用一间房子,问n头奶牛产奶共需要多少房子,并输出每头奶牛用哪间房子 分析:这题就是一个裸的贪心,将奶牛按开始时间进行排序即可,但考虑一下数据范围,我 ...

随机推荐

  1. Free Goodies UVA - 12260

    Petra and Jan have just received a box full of free goodies, and want to divide the goodies between ...

  2. Codeforces 631B Print Check【模拟】

    题意: 按顺序给定列和行进行涂色,输出最终得到的方格颜色分布. 分析: 记录下涂的次序,如果某个元素的横和列都被涂过,那么就选择次序最大的颜色. 代码: #include<iostream> ...

  3. Codeforces 629D Babaei and Birthday Cake(线段树优化dp)

    题意: n个蛋糕编号从小到大编号,j号蛋糕可以放在i号上面,当且仅当j的体积严格大于i且i<j,问最终可得的最大蛋糕体积. 分析: 实质为求最长上升子序列问题,设dp[i]从头开始到第i位的最长 ...

  4. Windows系统下查看已共享的文件夹的方法

    电脑使用时间比较长,共享过好几次文件夹,现在想取消共享,但共享文件夹的路径隐藏得太深,要怎么样才能快速找到共享文件夹的实际路径呢?” “其实现在单位常见的方法都是用网上邻居的共享文件夹,共享的文件夹也 ...

  5. sonar做代码检测时如何忽略一些代码文件

    1.管理员登录sonar 2.如图 一条规则配置一个,不要填写逗号或者分号分割的多个规则

  6. node-V8

    Node是基于V8引擎的,所以我们运行Js文件不会存在问题,下面演示一下: 因为安装Vscode后,会自动添加本路径到path,所以可以用 code yes.js 来执行创建文件 Vscode是基于N ...

  7. yarn-cli 添加

    添加依赖包 当你想使用另一个包时,你要先把它添加到依赖列表中.也就是执行 yarn add [package-name] 命令将它安装到你的项目中. 这也将同时更新你的 package.json 和  ...

  8. 杭电 3555 Bomb

    Bomb Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others) Total Subm ...

  9. ASP.NET Boilerplate 学习 AspNet Core2 浏览器缓存使用 c#基础,单线程,跨线程访问和线程带参数 wpf 禁用启用webbroswer右键菜单 EF Core 2.0使用MsSql/MySql实现DB First和Code First ASP.NET Core部署到Windows IIS QRCode.js:使用 JavaScript 生成

    ASP.NET Boilerplate 学习   1.在http://www.aspnetboilerplate.com/Templates 网站下载ABP模版 2.解压后打开解决方案,解决方案目录: ...

  10. iOS DeepLinkKit使用简单介绍

    Update: 2017.04.08 添加了使用iOS DeepLinkKit使用Universal Links的部分 ---------------------------------------- ...