流水依依

希望朋友们有个好的身体,开开心心工作与学习。

博客园 首页 新随笔 联系 订阅 管理

题目1463:招聘会

时间限制:1 秒

内存限制:128 兆

题目描述:

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

输入:

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

输出:

最多参加的招聘会个数。

样例输入:
3
9 10
10 20
8 15
样例输出:
2
来源:
算法之美(面试算法每日一题系列)
注意编码。
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <string>
#include <map>
#include <vector>
#include <set>
#include <algorithm>
#define Max(a,b) ((a)>(b)?(a):(b))
using namespace std;
typedef long long LL ;
const int size=1008 ;
struct Me{
   struct Meet{
      int start_time ;
      int end_time ;
      friend bool operator <(const Meet A ,const Meet B){
          return A.end_time<B.end_time ;
      }
   };
   int N  ;
   Meet meet[size] ;
   Me(){}
   Me(int n):N(n){}
   void read(){
      for(int i=1;i<=N;i++)
        scanf("%d%d",&meet[i].start_time,&meet[i].end_time) ;
      sort(meet+1,meet+1+N) ;
   }
   int gao_qi(){
      read() ;
      int i=2 ;
      int sum=1 ;
      int end_time=meet[1].end_time  ;
      while(i<=N){
         if(end_time<=meet[i].start_time){
            sum++ ;
            end_time=meet[i].end_time ;
         }
         i++ ;
      }
      return sum ;
   }
};
int main(){
  int n ;
  while(cin>>n){
     Me me(n) ;
     cout<<me.gao_qi()<<endl ;
  }
  return 0 ;
}

  

posted on 2013-09-02 08:11  流水依依  阅读(293)  评论(0编辑  收藏  举报