思路:

贪心?就算是吧

先把所有的开始时间排个序

如果当前的能匹配上已有的牛栏,就找开始时间最早的那个。

否则新加一个牛栏

整个过程用priority_queue实现就OK了。。

//By SiriusRen
#include <queue>
#include <cstdio>
#include <algorithm>
using namespace std;
int n,t=1,s[55555];
struct Node {int pos,begin,end;}node[55555];
struct Sirius{int time,num;}jy;
priority_queue<Sirius>pq;
bool operator<(Sirius a,Sirius b){return a.time>b.time;}
bool cmp(Node a,Node b){return a.begin<b.begin;}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d%d",&node[i].begin,&node[i].end);
node[i].pos=i;
}
sort(node+1,node+1+n,cmp);
jy.num=1;jy.time=node[1].end;
pq.push(jy);
s[node[1].pos]=1;
for(int i=2;i<=n;i++){
if(node[i].begin>pq.top().time){
jy=pq.top();
pq.pop();
s[node[i].pos]=jy.num;
jy.time=node[i].end;
pq.push(jy);
}
else{
t++;
jy.time=node[i].end;
jy.num=t;
s[node[i].pos]=t;
pq.push(jy);
}
}
printf("%d\n",t);
for(int i=1;i<=n;i++)printf("%d\n",s[i]);
}

最新文章

  1. 问题记录:JavaFx 鼠标滑轮滚动事件监听!
  2. Yii源码阅读笔记(一)
  3. CentOS 7 使用外部邮箱 发送邮件和附件—mail,mailx
  4. 2015长春 HDU 5531 Rebuild
  5. Cookie介绍及JavaScript操作Cookie方法详解
  6. lesson4:使用锁Lock来解决重复下单的问题
  7. gulp压缩js
  8. avalonJS入门(一)
  9. jquery表格datagrid单元格显示图片及分页使用
  10. java-数组排序--冒泡排序、鸡尾酒排序、地精排序
  11. Redux和React
  12. LabVIEW(三):定时与触发
  13. mapstruct与lombok结合使用
  14. springboot 2.0 mariadb hikari-cp连接池
  15. 这10个Python项目超有趣!
  16. JavaScript变量作用域(Variable Scope)和闭包(closure)的基础知识
  17. 【Selenium-WebDriver自学】Selenium-IDE不同的浏览器(八)
  18. [cocos2d-x]认识游戏开发(图)
  19. monobehaviour生命周期完整版
  20. 解决网速慢时maven仓库访问慢

热门文章

  1. Java知识点解析
  2. hdoj 4548 美素数 【打表】
  3. php设计模式之工厂方法模式
  4. httputil用http获取请求的工具类
  5. ing在写作中到底怎么用
  6. ui5 load josn
  7. HTML、CSS规范
  8. Node_进阶_5
  9. PCA一些性质的定性理解
  10. POJ-3436 ACM Computer Factory 最大流 为何拆点