题目:Stall Reservations

总结:这道题按照时间的开始的从小到大排序,如果开始时间相同,那么就按照结束时间从小到大,用n2的时间复杂度,只要有后面的开始时间大于前面的结束时间,那么就是相同,这个超时了。所以可以用一个优先队列,按照结束时间从小到大,如果结束时间相同,那么就按照开始时间从大到小排。
接下来就可以依次的遍历,如果当前牛的开始时间大于队列中第一个的结束时间,说明他们俩是可以连续的,否则就是多了一个新的栏杆

#include <stdio.h>
#include <vector>
#include <queue>
#include <string.h>
#include <algorithm>
using namespace std;
typedef long long ll;
const int N = 5e4+5;
const int inf = (1<<30);//极小值struct str{int l,r,index;friend bool operator<(str a,str b) {return a.r > b.r || (a.r == b.r && a.l < b.l);//前面的是从小到大,后面的是大到小。}
}a[N];
int n,cnt,vis[N];
priority_queue<str>que;bool cmp(struct str a,struct str b){return a.l < b.l || (a.l==b.l&&a.r<b.r);
}
int main(){scanf("%d",&n);for(int i = 0;i < n;i++){scanf("%d %d",&a[i].l,&a[i].r);a[i].index = i;}sort(a,a+n,cmp);que.push(a[0]);vis[a[0].index] = 1;for(int i = 1;i < n;i++){if(a[i].l > que.top().r){vis[a[i].index] = vis[que.top().index];que.pop();que.push(a[i]);}else {que.push(a[i]);vis[a[i].index] = que.size();}}printf("%d\n",que.size());for(int i = 0;i < n;i++){printf("%d\n",vis[i]);}return 0;
}

Stall Reservations相关推荐

  1. 【贪心】Stall Reservations(luogu 2859/poj 3190)

    Stall Reservations luogu 2859 poj 3190 题目大意: 有n头牛,每头牛都有自己的挤奶时间,挤奶时间内每头牛用一个奶棚,现在问最少需要多少个奶棚 输入样例 5 1 1 ...

  2. 51nod 1428 bzoj 1651: [Usaco2006 Feb]Stall Reservations 专用牛棚

    1651: [Usaco2006 Feb]Stall Reservations 专用牛棚 Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 951  So ...

  3. BZOJ 1651: [Usaco2006 Feb]Stall Reservations 专用牛棚

    1651: [Usaco2006 Feb]Stall Reservations 专用牛棚 Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 876  So ...

  4. Stall Reservations POJ

    原题链接 经典贪心题目. 思路:开结构体cow.stall分别表示牛.畜栏,其中,每个cow都有编号.开始挤奶.结束挤奶时间,每个stall都有编号.当前在该畜栏中挤奶的牛的挤奶结束时间. struc ...

  5. 挑战程序设计竞赛 POJ Stall Reservations

    题目 没想到用优先队列,我最开始的思路是对每个区间的结束时间排序,优先处理结束早的区间,但题目下面已经提示了,优先处理开始时间早的,对已经在stall里奶牛优先处理结束时间早的. #include & ...

  6. POJ 3190 Stall Reservations(贪心算法)

    有 n头牛(1<=n<=50,000)要挤奶.给定每头牛挤奶的时间区 间[A,B] (1<=A<=B<=1,000,000,A,B为整数). 牛需要呆畜栏里才能挤奶.一个 ...

  7. POJ - 3190 Stall Reservations(贪心+优先队列优化)

    题目链接:点击查看 题目大意:有n头牛在畜栏中吃草,每个畜栏在同一时间段只能提供给一头牛吃草,所以可能会需要多个畜栏,给定N头牛和每头牛开始吃草和结束吃草的时间,每头牛在给定时间段内会一直吃草,求需要 ...

  8. poj3190 Stall Reservations(贪心+STL)

    https://vjudge.net/problem/POJ-3190 cin和scanf差这么多么..tle和300ms 思路:先对结构体x升序y升序,再对优先队列重载<,按y升序. 然后依次 ...

  9. bzoj 1651: [Usaco2006 Feb]Stall Reservations 专用牛棚【贪心+堆||差分】

    这个题方法还挺多的,不过洛谷上要输出方案所以用堆最方便 先按起始时间从小到大排序. 我用的是greater重定义优先队列(小根堆).用pair存牛棚用完时间(first)和牛棚编号(second),每 ...

最新文章

  1. 初识RabbitMQ,附RabbitMQ+PHP演示实例(亲测通过)
  2. Veeam Backup Replication试用(三):配置备份(Backup Job)与恢复(Restore)
  3. android最新能调试吗,android – 不能在同一台设备上安装调试和发布版本
  4. 如果有一天,小夕不再萌...
  5. 计算机专业太难不适合女生学?来看 N 多小姐姐的回应
  6. (非本校)湖南工业大学个人选拔赛第一场 解题报告
  7. TOMCAT下应用部署新法(/META-INF/context.xml)
  8. 181221每日一句
  9. Java中面向对象和面向过程的简单理解以及共同点和区别
  10. SQL Server 查询分析器提供的所有快捷方式(快捷键)
  11. 电脑桌面双击计算机图标打不开,电脑双击图标打不开怎么办
  12. 支付宝第三方登录具体实现
  13. 【渝粤题库】陕西师范大学163104 景区管理 作业 (高起专)
  14. SudaMod-81.0 / crDroidAndroid-8.1(android-8.1.0_r20)红米3 2018年5月3日更新
  15. 普通话测试app怎么样可以不交钱_如何说普通话才算标准?
  16. 【CVPR2020视频超分辨率】Zooming Slow-Mo: Fast and Accurate One-Stage Space-Time Video Super-Resolution 阅读笔记
  17. 四级单词pdf_2017年6月大学英语四级真题及答案解析(完整三套可打印)
  18. 泛函分析简列:度量空间之Banach空间与模等价
  19. linux 垃圾箱位置,如何将Linux rm命令删除的文件放入垃圾箱
  20. 机器学习之监督与非监督算法

热门文章

  1. 16 - Workbench分析类型与通用求解设置
  2. 使用Python,OpenCV制作全透明的logo水印,对图像添加水印
  3. [转]“高科技无产阶级”:卢瑟、宅男与屌丝
  4. 招商基金招聘运维开发岗(地点:深圳)
  5. 2022 CCF中国软件大会(CCF Chinasoft)“泛在计算时代的智能化运维”论坛成功召开...
  6. 如何把heic格式转换为jpg?这几种方法建议收藏
  7. 【c++】求正方形形、长方形、圆形的周长和面积
  8. 003-Android-Activity和Intent习题
  9. CSDN代码和积分获取方式
  10. qq空间音乐查询API|经纬度查询API|手机归属地API|Taobao API接口调用实例