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 ;
}

最新文章

  1. js,addEventListener参数传递
  2. html中获取图片的真实尺寸
  3. DB2 表空间和缓冲池
  4. 射频识别技术漫谈(9)&mdash;&mdash;动物标签HDX【worldsing笔记】
  5. 210 - Concurrency Simulator(WF1991, deque, 模拟)
  6. pat 1062. Talent and Virtue (25)
  7. mysql出现错误“ Every derived table must have its own alias”
  8. MongoDB 启动异常
  9. typedef,static,const用法
  10. oracle与sqlserver区别
  11. margin属性的正负值确定
  12. amaze UI 笔记 - JS
  13. eclipse jpa 工具生成实体类
  14. Spark操作HBase报:org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException异常解决方案
  15. 在CentOS下的docker容器中部署spring boot应用的两种方式
  16. decorator, async/await, generator
  17. 微信h5支付“网站域名ICP备案主体与商户号主体不一致”的解决方法,H5微信支付 授权函下载
  18. vue项目中, 字段信息为空时不渲染,是真的不渲染吗
  19. Win7 访问win2008 远程桌面提示:您的凭证不工作
  20. MVC3学习:利用mvc3+ajax实现全选和批量删除

热门文章

  1. 热部署jredel介绍
  2. msp430入门编程07
  3. 自定义日志工具LogUtil
  4. 使用SAX方式解析XML文件
  5. Ubuntu 16.04粘贴板增强工具Diodon
  6. RabbitMQ集群环境搭建教程收集(待实践)
  7. java常用工具类 - 全角转半角、半角转全角
  8. [转] ASPNET Core 中获取应用程序物理路径
  9. 【前端】JavaScript继承实现的四种方式
  10. boost::mpl::eval_if的使用方法