bzoj1651 / P2859 [USACO06FEB]摊位预订Stall Reservations
P2859 [USACO06FEB]摊位预订Stall Reservations
维护一个按右端点从小到大的优先队列
蓝后把数据按左端点从小到大排序,顺序枚举。
每次把比右端点比枚举线段左端点小的数据从优先队列中删掉。
在整个过程中队列的最大长度即为答案。
总之用优先队列模拟一下就ok了
对于luogu需要输出方案数的问题:
再开一个优先队列存未用的编号
每次有线段进队时取走最小的编号,出队时再还回来。
似乎暴力也行(大雾)
#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#include<algorithm>
using namespace std;
int max(int a,int b){return a>b?a:b;}
#define N 50005
struct data{
int l,r,id;
void init(int x){scanf("%d%d",&l,&r);id=x;}
bool operator < (const data &tmp) const{
return r>tmp.r;
}
}a[N]; priority_queue <data> h;
priority_queue <int,vector<int>,greater<int> > d;
bool cmp(const data &A,const data &B){return A.l<B.l;}
int n,mp[N],ans;
int main(){
scanf("%d",&n);
for(int i=;i<=n;++i) a[i].init(i),d.push(i);
sort(a+,a+n+,cmp);
for(int i=;i<=n;++i){
if(!h.empty()){
for(data q=h.top();!h.empty();q=h.top()){
if(q.r>=a[i].l) break;
d.push(mp[q.id]);h.pop();
}
}h.push(a[i]);
mp[a[i].id]=d.top(); d.pop();
ans=max(ans,h.size());
}printf("%d\n",ans);
for(int i=;i<=n;++i) printf("%d\n",mp[i]);
return ;
}
bzoj1651 / P2859 [USACO06FEB]摊位预订Stall Reservations的更多相关文章
- 洛谷P2859 [USACO06FEB]摊位预订Stall Reservations
P2859 [USACO06FEB]摊位预订Stall Reservations 题目描述 Oh those picky N (1 <= N <= 50,000) cows! They a ...
- [USACO06FEB]摊位预订Stall Reservations(贪心)
[USACO06FEB]摊位预订Stall Reservations 题目描述 Oh those picky N (1 <= N <= 50,000) cows! They are so ...
- 题解 P2859 【[USACO06FEB]摊位预订Stall Reservations】
题目链接: https://www.luogu.org/problemnew/show/P2859 思路: 首先大家会想到这是典型的贪心,类似区间覆盖问题的思路,我们要将每段时间的左端点从小到大排序, ...
- [USACO06FEB] Stall Reservations 贪心
[USACO06FEB] Stall Reservations 贪心 \(n\)头牛,每头牛占用时间区间\([l_i,r_i]\),一个牛棚每个时间点只能被一头牛占用,问最少新建多少个牛棚,并且每头牛 ...
- BZOJ1651: [Usaco2006 Feb]Stall Reservations 专用牛棚
1651: [Usaco2006 Feb]Stall Reservations 专用牛棚 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 509 Sol ...
- poj 3190 Stall Reservations
http://poj.org/problem?id=3190 Stall Reservations Time Limit: 1000MS Memory Limit: 65536K Total Su ...
- Stall Reservations(POJ 3190 贪心+优先队列)
Stall Reservations Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 4434 Accepted: 158 ...
- BZOJ 1651: [Usaco2006 Feb]Stall Reservations 专用牛棚( 线段树 )
线段树.. -------------------------------------------------------------------------------------- #includ ...
- BZOJ 1651: [Usaco2006 Feb]Stall Reservations 专用牛棚
题目 1651: [Usaco2006 Feb]Stall Reservations 专用牛棚 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 553 ...
随机推荐
- Oracle数据迁移之rman活动数据库复制
1.设置主库为归档模式 SQL> shutdown immediate SQL> startup mount SQL> alter database archivelog; SQL& ...
- Python requests 301/302/303重定向(跨域/本域)cookie、Location问题
今天使用request的get方法获取一个网站的登录页信息,结果使用charles抓包的时候发现该网站登录页303(重定向的问题),网上查了很多资料,原因如下: 一.cookie 原因:利用reque ...
- SUSE12的虚拟机安装以及ORACLE12C的安装
在本文中用到的所有参数,均位于文后附录中 在VMware中新建虚拟机,建好之后挂载光盘,启动虚拟机进入安装界面 初始化中 选择跳过注册 选择DVD模式 选择接受许可证条款 默认选择 选择默认系统 选择 ...
- 学习计划 nginx 中 mime.types 的作用
nginx中http模块下默认配置加载了mime.type 于是想知道这是什么? -- 什么是mime.type? 首先,应该了解到,浏览器是如何处理内容的,在浏览器中显示的各种内容,MP4.png. ...
- 洛谷P2444 病毒 [POI2000] AC自动机
正解:AC自动机 解题报告: 传送门! 首先看到这种题目二话不说先把trie树和fail指针建立起来 然后就想鸭,如果我们想让模式串和文本串尽量不能匹配,就要想办法让它跳fail指针,而不是继续往下走 ...
- BZOJ1012最大数 [JSOI2008] 单调栈+二分
正解:单调栈+二分查找(or,线段树? 解题报告: 拿的洛谷的链接quq 今天尝试学习了下单调栈,然后就看到有个博客安利了这个经典例题?于是就去做了,感觉还是帮助了理解趴quqqqqq 这题,首先,一 ...
- 算法抽象及用Python实现具体算法
一.算法抽象 它们一般是在具体算法的基础上总结.提炼.分析出来的,再反过来用于指导解决其它问题.它们适用于某一类问题的解决,用辩 证法的观点看,抽象的算法和具体的算法就是抽象与具体.普遍性与特殊性.共 ...
- Python yield 使用浅析(转)
add by zhj: 说到yield,就要说说迭代器.生成器.生成器函数. 迭代器:其实就是一个可迭代对象,书上说迭代器,我个人不喜欢这个说法,有点晦涩.可迭代对象基本上可以认为是有__iter__ ...
- JavaScript如何实现拖放功能
1.在学习ExtJs时,对其拖放功能感到很陌生,然后找了个拖放功能实现. 转载地址 2.拖拽的基本原理就是根据鼠标的移动来移动被拖拽的元素.鼠标的移动也就是x.y坐标的变化:元素的移动就是style. ...
- 011-spring cloud gateway-使用
一.pom增加 <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...