51nod贪心算法入门-----活动安排问题
2024-08-25 18:07:35
有若干个活动,第i个开始时间和结束时间是[Si,fi),只有一个教室,活动之间不能交叠,求最多安排多少个活动?
输入
第1行:1个数N,线段的数量(2 <= N <= 10000)
第2 - N + 1行:每行2个数,线段的起点和终点(-10^9 <= S,E <= 10^9)
输出
输出最多可以选择的线段数量。
输入示例
3
1 5
2 3
3 6
输出示例
2
我们可以知道先安排最早结束的活动可以更多的安排活动。首先就是将所有的活动结束时间按先后顺序给排序;然后以结束时间为线索一路检索下去,判断开始时间是否早于前面一次活动的结束时间。这里可以用结构体或者两个数组来把一个活动的开始时间和结束时间联系起来。
#include<stdio.h>
#include<iostream>
#define max 10001
using namespace std;
int main(){
int n,i,j,temps,tempo;
int start[max],over[max];
while(scanf("%d",&n)!=EOF){
int sum=,t=-;
for(i=;i<n;i++){
cin>>start[i]>>over[i];
}
for(i=;i<n;i++)
for(j=i;j<n;j++){
if(over[i]>over[j]){
tempo=over[i];
over[i]=over[j];
over[j]=tempo;
temps=start[i];
start[i]=start[j];
start[j]=temps;
}
}
for(i=;i<n;i++){
if(t<=start[i]){
t=over[i];
sum+=;
}
}
printf("%d\n",sum);
}
return ;
}
//原本我还考虑了活动时间不能为负数的情况,但是在提交时系统给出的数据中把负数也给算了进去。。。。。
最新文章
- 【原】AFNetworking源码阅读(五)
- ionic之$ionicGesture手势(大坑)
- 限制input只能输入金额(类似:100.00|100.9|100)
- shell 除法 小数点
- MongoDB Shard部署及Tag的使用
- XDU 1161 - 科协的数字游戏II
- OAuth2.0协议
- QEvent大全,有中文解释
- modifytime是一个神奇的column name----这边文章是错的totally,因为我的实验不彻底。timestamp属性很神奇,头一个timestamp,会自动的成DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
- hdu 3400 Line belt
- COB(Chip On Board) 工艺技术
- oschina娱乐游戏
- 5种IE hasLayoutt的属性及其值
- 初学 Python(十一)——切片
- The first week CorelDRAW 课总结:
- Mybatis实体类属性与数据库字段不一致解决办法
- WPF软件开发系统之二——水环境检测Surface触摸屏软件开发
- GitHub上高质量项目
- prototype的一些事
- ajax无刷新技术