Stall Reservations
题目: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相关推荐
- 【贪心】Stall Reservations(luogu 2859/poj 3190)
Stall Reservations luogu 2859 poj 3190 题目大意: 有n头牛,每头牛都有自己的挤奶时间,挤奶时间内每头牛用一个奶棚,现在问最少需要多少个奶棚 输入样例 5 1 1 ...
- 51nod 1428 bzoj 1651: [Usaco2006 Feb]Stall Reservations 专用牛棚
1651: [Usaco2006 Feb]Stall Reservations 专用牛棚 Time Limit: 10 Sec Memory Limit: 64 MB Submit: 951 So ...
- BZOJ 1651: [Usaco2006 Feb]Stall Reservations 专用牛棚
1651: [Usaco2006 Feb]Stall Reservations 专用牛棚 Time Limit: 10 Sec Memory Limit: 64 MB Submit: 876 So ...
- Stall Reservations POJ
原题链接 经典贪心题目. 思路:开结构体cow.stall分别表示牛.畜栏,其中,每个cow都有编号.开始挤奶.结束挤奶时间,每个stall都有编号.当前在该畜栏中挤奶的牛的挤奶结束时间. struc ...
- 挑战程序设计竞赛 POJ Stall Reservations
题目 没想到用优先队列,我最开始的思路是对每个区间的结束时间排序,优先处理结束早的区间,但题目下面已经提示了,优先处理开始时间早的,对已经在stall里奶牛优先处理结束时间早的. #include & ...
- POJ 3190 Stall Reservations(贪心算法)
有 n头牛(1<=n<=50,000)要挤奶.给定每头牛挤奶的时间区 间[A,B] (1<=A<=B<=1,000,000,A,B为整数). 牛需要呆畜栏里才能挤奶.一个 ...
- POJ - 3190 Stall Reservations(贪心+优先队列优化)
题目链接:点击查看 题目大意:有n头牛在畜栏中吃草,每个畜栏在同一时间段只能提供给一头牛吃草,所以可能会需要多个畜栏,给定N头牛和每头牛开始吃草和结束吃草的时间,每头牛在给定时间段内会一直吃草,求需要 ...
- poj3190 Stall Reservations(贪心+STL)
https://vjudge.net/problem/POJ-3190 cin和scanf差这么多么..tle和300ms 思路:先对结构体x升序y升序,再对优先队列重载<,按y升序. 然后依次 ...
- bzoj 1651: [Usaco2006 Feb]Stall Reservations 专用牛棚【贪心+堆||差分】
这个题方法还挺多的,不过洛谷上要输出方案所以用堆最方便 先按起始时间从小到大排序. 我用的是greater重定义优先队列(小根堆).用pair存牛棚用完时间(first)和牛棚编号(second),每 ...
最新文章
- 初识RabbitMQ,附RabbitMQ+PHP演示实例(亲测通过)
- Veeam Backup Replication试用(三):配置备份(Backup Job)与恢复(Restore)
- android最新能调试吗,android – 不能在同一台设备上安装调试和发布版本
- 如果有一天,小夕不再萌...
- 计算机专业太难不适合女生学?来看 N 多小姐姐的回应
- (非本校)湖南工业大学个人选拔赛第一场 解题报告
- TOMCAT下应用部署新法(/META-INF/context.xml)
- 181221每日一句
- Java中面向对象和面向过程的简单理解以及共同点和区别
- SQL Server 查询分析器提供的所有快捷方式(快捷键)
- 电脑桌面双击计算机图标打不开,电脑双击图标打不开怎么办
- 支付宝第三方登录具体实现
- 【渝粤题库】陕西师范大学163104 景区管理 作业 (高起专)
- SudaMod-81.0 / crDroidAndroid-8.1(android-8.1.0_r20)红米3 2018年5月3日更新
- 普通话测试app怎么样可以不交钱_如何说普通话才算标准?
- 【CVPR2020视频超分辨率】Zooming Slow-Mo: Fast and Accurate One-Stage Space-Time Video Super-Resolution 阅读笔记
- 四级单词pdf_2017年6月大学英语四级真题及答案解析(完整三套可打印)
- 泛函分析简列:度量空间之Banach空间与模等价
- linux 垃圾箱位置,如何将Linux rm命令删除的文件放入垃圾箱
- 机器学习之监督与非监督算法
热门文章
- 16 - Workbench分析类型与通用求解设置
- 使用Python,OpenCV制作全透明的logo水印,对图像添加水印
- [转]“高科技无产阶级”:卢瑟、宅男与屌丝
- 招商基金招聘运维开发岗(地点:深圳)
- 2022 CCF中国软件大会(CCF Chinasoft)“泛在计算时代的智能化运维”论坛成功召开...
- 如何把heic格式转换为jpg?这几种方法建议收藏
- 【c++】求正方形形、长方形、圆形的周长和面积
- 003-Android-Activity和Intent习题
- CSDN代码和积分获取方式
- qq空间音乐查询API|经纬度查询API|手机归属地API|Taobao API接口调用实例