HDU:3650 Hot Expo

题意:sunnuy要游览世博会,每天都有N个节目,然后给你N个节目的起止时间,他不想错过所有节目,问你看完全部节目最少要多少天。

思路:只需要知道最大重叠区间的重叠数是多少即可。

可能是我做区间的贪心问题做多了,这道题用拿老一套居然不行。好在数据量比较小,但凡有节目的时间段就+1,最后统计最大值是多少即可。

 

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#define MAXN 3600*24+10
using namespace std;
int ans[MAXN];
int main()
{
    int N;
    while(scanf("%d",&N)&&N)
   {
       int u,v;
       memset(ans,0,sizeof(ans));
       for(int i=0;i<N;++i)
       {
           scanf("%d%d",&u,&v);
           for(int j=u;j<=v;++j)
            ans[j]++;
       }
       int mx=0;
       for(int i=0;i<=MAXN;++i)
        mx=max(mx,ans[i]);
       printf("%d\n",mx);
   }
    return 0;
}


 

你可能感兴趣的:(HDU:3650 Hot Expo)