天勤考研算法练习赛题目-天勤考研算法练习赛
时间: 2023-11-10 07:48:14 浏览: 125
天勤考研算法练习赛题目-天勤考研算法练习赛是一个考察算法设计和实现能力的竞赛。题目中给出了一组关于球赛开始和结束时间的数据,要求选出能够参与的最大球赛数量。
具体的实现代码如下:
```c++
#include<iostream>
#include<queue>
#include<algorithm>
#include<functional>
#include<cstdio>
const int MAXN = 100;
using namespace std;
int main() {
#ifdef ONLINE_JUDGE
#else
freopen("D:\\in.txt", "r", stdin);
freopen("D:\\out.txt", "w", stdout);
#endif
int n(0);
while (cin >> n) {
if (n == 0)
break;
pair<int, int> itv[MAXN];
for (int i = 0; i < n; i++) {
cin >> itv[i].second >> itv[i].first;
}
sort(itv, itv + n);
int ans(0), t(0);//t是最后所选工作的结束时间
for (int i = 0; i < n; i++) {
if (t <= itv[i].second) {
ans++;
t = itv[i].first;
}
}
cout << ans << endl;
}
return 0;
}
```
这段代码主要是通过排序给出的球赛时间数据,然后遍历选取能够参与的最大球赛数量,并输出结果。
算法的核心思想是贪心算法。按照球赛结束时间从小到大排序,然后遍历排序后的数据,将能够参与的球赛数量加一,并将最后一场参与的球赛的结束时间作为下一场比赛的开始时间。最后输出能够参与的最大球赛数量。
这样的算法设计可以保证选取的球赛数量最大,并且具有较高的效率。
阅读全文