原题目链接HDU2537
分类
HDU 贪心
题意
(经典贪心题目)
给出电视节目的开始与结束时间,求能完整看完的节目个数最多
样例输入输出
Sample Input
12
1 3
3 4
0 7
3 8
15 19
15 20
10 15
8 18
6 12
5 10
4 14
2 9
0
Sample Output
5
想法
先按结束时间从小到大排序,结束时间相同的按开始时间从小到大排序,贪心
代码
15ms
#include<bits/stdc++.h>
using namespace std;
struct tv
{
int s;
int e;
}a[105];
bool cmp(const tv a,const tv b){
if(a.e!=b.e){
return a.e<b.e;
}
else{
return a.s<b.s;
}
}
int n;
int main(){
while (cin>>n&&n)
{
for (int i = 0; i < n; i++){
cin >> a[i].s >> a[i].e;
}
sort(a,a+n, cmp);
int num = 0, l = 0;
for (int i = 0; i < n; i++){
if (l <= a[i].s){
num++;
l = a[i].e;
}
}
cout << num << endl;
}
}