[Jobdu] 题目1463:招聘会

题目描述:

又到毕业季,很多大公司来学校招聘,招聘会分散在不同时间段,小明想知道自己最多能完整的参加多少个招聘会(参加一个招聘会的时候不能中断或离开)。

输入:

第一行n,有n个招聘会,接下来n行每行两个整数表示起止时间,由从招聘会第一天0点开始的小时数表示。
n <= 1000 。

输出:

最多参加的招聘会个数。

样例输入:
3
9 10
10 20
8 15
样例输出:
2

经典的贪心算法题。

 #include <iostream>
#include <vector>
#include <algorithm>
#include <cstdio>
using namespace std; struct data {
int st;
int ed;
}; bool cmp(const data &a, const data &b) {
return a.ed < b.ed;
} int main() {
//freopen("input.txt", "r", stdin);
vector<data> v;
data d;
int n;
int res;
int ed;
while (cin >> n) {
v.clear(); for (int i = ; i < n; ++i) {
cin >> d.st >> d.ed;
v.push_back(d);
}
sort(v.begin(), v.end(), cmp);
res = ;
ed = v[].ed;
for (int i = ; i < n; ++i) {
if (v[i].st >= ed) {
ed = v[i].ed;
++res;
}
}
cout << res << endl;
}
return ;
}
上一篇:Hystrix 实战经验分享


下一篇:《Google软件测试之道》—第1章1.4节爬、走、跑