会场安排问题

时间限制: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时间开始
经典的安排问题,贪心法求解
先按结束时间排序,之后统计最多可以安排多少个活动
#include <cstdio>
#include <algorithm> using namespace std;
typedef pair<int,int> Activity;
Activity act[]; bool cmp(Activity a, Activity b) {
return a.second < b.second;
}
int main(int argc, char const *argv[])
{
int n;
scanf("%d",&n);
while(n--) {
int m;
scanf("%d",&m);
for(int i = ; i < m; i++) {
scanf("%d %d",&act[i].first,&act[i].second);
}
sort(act, act+m, cmp);
int to = ;
int ans = ;
for(int i = ; i < m; i++) {
if(act[i].first > to) {
ans++;
to = act[i].second;
}
}
printf("%d\n", ans);
}
return ;
}

最新文章

  1. 用qpython3写一个最简单的发送短信的程序
  2. Codeforces 424C(异或)
  3. List&lt;string&gt;里 每个元素重复了多少次
  4. 画表格防OFFICE的功能
  5. JAXB - Annotations, The Object Factory: XmlRegistry, XmlElementDecl
  6. Android 5.0 技术新趋势
  7. wemall app商城源码Android之支付宝通知处理类
  8. python爬虫如何入门
  9. 【ANT】时间戳
  10. printf,sprintf,fprintf的比较
  11. Yii2 日志处理
  12. JDBC API 可滚动可编辑的结果集
  13. Docker中安装elasticsearch6.7.1
  14. android TextView 例子代码(文字图片、文字省略、文字滚动)
  15. CF 914F Substrings in a String——bitset处理匹配
  16. the source attachment does not contain the source for the file xxx.class无法关联到某个类
  17. python中读取文件的f.seek()方法
  18. day1-Python擅长的领域+学习内容
  19. 大数据-图表插件-echarts 样式修改(迭代)
  20. ObjC的initialize和init

热门文章

  1. World Wind Java开发之十——AnalyticSurface栅格渲染(转)
  2. Object comparison - (BOOL)isEqual:(id)other
  3. 【洛谷2633】Count on a tree(树上主席树)
  4. 2018.5.22 Oracle安装配置在虚拟机中外部电脑连接服务
  5. bootstrap3 文档随看
  6. C#赋值运算符
  7. C#装箱与拆箱的研究
  8. c++中的结构化语句 判断语句if 分支语句switch 循环语句 while 和 do while 循环语句for的使用
  9. linux内核--定时器API
  10. Vue入门之HelloWorld