1428 活动安排问题

基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题
 收藏
 关注
有若干个活动,第i个开始时间和结束时间是[Si,fi),同一个教室安排的活动之间不能交叠,求要安排所有活动,最少需要几个教室? 
Input
第一行一个正整数n (n <= 10000)代表活动的个数。
第二行到第(n + 1)行包含n个开始时间和结束时间。
开始时间严格小于结束时间,并且时间都是非负整数,小于1000000000
Output
一行包含一个整数表示最少教室的个数。
Input示例
3
1 2
3 4
2 9
Output示例
2

AC:代码

#include <bits/stdc++.h>  
#define LL long long  
using namespace std;  
const int AX = 1e4+666;  
struct Node  
{  
    LL l , r ;  
}e[AX];  
  
bool cmp( const Node &a , const Node &b ){  
    if( a.l == b.l ) return a.r < b.r;  
    else return a.l < b.l;  
}  
  
bool operator<( Node a , Node b ){  
    if( a.r == b.r ) return a.l < b.l;  
    else return a.r > b.r;  
}  
  
priority_queue<Node>que;  
  
int main(){  
    ios_base::sync_with_stdio(false); cin.tie(0);  
    int n;  
    cin >> n ;  
    for( int i = 0 ; i < n ; i++ ){  
        cin >> e[i].l >> e[i].r ;  
    }  
    sort(e,e+n,cmp);  
    int res = 1;  
    que.push(e[0]);  
    for( int i = 1 ; i < n ; i++ ){  
        if( que.top().r <= e[i].l ){  
            que.pop();  
            que.push(e[i]);  
        }else{  
            que.push(e[i]);  
            res++;  
        }  
    }  
    cout << res << endl;  
    return 0;  
}
ios_base::sync_with_stdio(false); cin.tie(0);  //看不懂请参见点击打开链接



posted @   Nlifea  阅读(224)  评论(0编辑  收藏  举报
编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥
点击右上角即可分享
微信分享提示