题意:一个实验室有n次实验申请,知道每次实验的起始与结束时间,判断这个实验室最多能完成多少次实验
链接:http://acm.timus.ru/problem.aspx?space=1&num=1203
思路:以结束时间为权重进行贪心
注意点:无
以下为AC代码:
ID | Date | Author | Problem | Language | Judgement result | Test # | Execution time | Memory used |
---|---|---|---|---|---|---|---|---|
6247484 |
19:13:44
14 May 2015 | luminous11 | 1203. Scientific Conference | G++ 4.9 C++11 | Accepted | 0.328 | 1 162 KB |
/*
***********************************************
*# @Author : Luminous11 (573728051@qq.com)
*# @Date : 2015-05-14 19:09:49
*# @Link : http://blog.csdn.net/luminous11
***********************************************
*/
#include <bits/stdc++.h>
#define clr(a, v) memset( a , v , sizeof(a) )
using namespace std;
const double eps = 1e-10;
const double pi = acos(-1.0);
struct data
{
int be, en;
void input()
{
scanf ( "%d%d", &be, &en );
}
};
data num[100005];
bool operator < ( const data &a, const data &b )
{
return a.en < b.en;
}
int main()
{
int n;
while ( scanf ( "%d", &n ) != EOF ){
for ( int i = 0; i < n; i ++ ){
num[i].input();
}
sort ( num, num + n );
int cnt = 0;
int t = -1;
for ( int i = 0; i < n; i ++ ){
if ( t < num[i].be ){
t = num[i].en;
cnt ++;
}
}
printf ( "%d\n", cnt );
}
return 0;
}