POJ 3190 priority_queue 贪心
2024-08-31 11:41:28
思路:
贪心?就算是吧
先把所有的开始时间排个序
如果当前的能匹配上已有的牛栏,就找开始时间最早的那个。
否则新加一个牛栏
整个过程用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]);
}
最新文章
- 问题记录:JavaFx 鼠标滑轮滚动事件监听!
- Yii源码阅读笔记(一)
- CentOS 7 使用外部邮箱 发送邮件和附件—mail,mailx
- 2015长春 HDU 5531 Rebuild
- Cookie介绍及JavaScript操作Cookie方法详解
- lesson4:使用锁Lock来解决重复下单的问题
- gulp压缩js
- avalonJS入门(一)
- jquery表格datagrid单元格显示图片及分页使用
- java-数组排序--冒泡排序、鸡尾酒排序、地精排序
- Redux和React
- LabVIEW(三):定时与触发
- mapstruct与lombok结合使用
- springboot 2.0 mariadb hikari-cp连接池
- 这10个Python项目超有趣!
- JavaScript变量作用域(Variable Scope)和闭包(closure)的基础知识
- 【Selenium-WebDriver自学】Selenium-IDE不同的浏览器(八)
- [cocos2d-x]认识游戏开发(图)
- monobehaviour生命周期完整版
- 解决网速慢时maven仓库访问慢