nyist 14 会场安排问题

以结束时间排序,一开始用了先按照开始时间排序,开始时间相同的按结束时间排,很荣幸的WA了,沉思了一会,用了以结束时间来排序,提交 AC了,

纠结了一会儿,这个。。。。。。。。。。

若以开始时间排序的话,例如:1 7 , 2 5

这样会早早提前结束活动安排。所以。。。。。。。。。。。

代码:

#include<iostream>
#include<algorithm>
using namespace std;

typedef struct room
{
    int a;
    int b;
}room;

const int N=10010;

room f[N];

int fun(room x,room y)
{
    if(x.a<y.a) return 1;
      else if(x.a==y.a)
           {if(x.b<y.b) return 1;
           else return 0;}
    else return 0;
}

int main()
{
    int n;
    cin>>n;
    while(n--)
    {
        int m;
        cin>>m;
        int i,j;
        for( i = 0; i < m; i++ )
          cin>>f[i].a>>f[i].b;
        //  for( i = 0; i < m; i++ )
          //  cout<<f[i].b<<endl;
      sort(f,f+m,fun);
      int t = 1;
      room y;
      y = f[0];
       for( i = 1; i < m; i++ )
          if(f[i].a > y.b)
             {
                 y = f[i];
                 t+=1;
             }
        cout<<t<<endl;;
    }
    return 0;
}

posted @ 2012-11-20 09:19  heity  阅读(127)  评论(0编辑  收藏  举报