POJ 3190 Stall Reservations 【贪心 区间】
来源:互联网 发布:ubuntu golang 1.8 编辑:程序博客网 时间:2024/06/05 07:13
Stall Reservations
Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 4325 Accepted: 1547 Special Judge
Description
Oh those picky N (1 <= N <= 50,000) cows! They are so picky that each one will only be milked over some precise time interval A..B (1 <= A <= B <= 1,000,000), which includes both times A and B. Obviously, FJ must create a reservation system to determine which stall each cow can be assigned for her milking time. Of course, no cow will share such a private moment with other cows.
Help FJ by determining:
Help FJ by determining:
- The minimum number of stalls required in the barn so that each cow can have her private milking period
- An assignment of cows to these stalls over time
Input
Line 1: A single integer, N
Lines 2..N+1: Line i+1 describes cow i's milking interval with two space-separated integers.
Lines 2..N+1: Line i+1 describes cow i's milking interval with two space-separated integers.
Output
Line 1: The minimum number of stalls the barn must have.
Lines 2..N+1: Line i+1 describes the stall to which cow i will be assigned for her milking period.
Lines 2..N+1: Line i+1 describes the stall to which cow i will be assigned for her milking period.
Sample Input
51 102 43 65 84 7
Sample Output
412324
Hint
Explanation of the sample:
Here's a graphical schedule for this output:
Here's a graphical schedule for this output:
Time 1 2 3 4 5 6 7 8 9 10Stall 1 c1>>>>>>>>>>>>>>>>>>>>>>>>>>>Stall 2 .. c2>>>>>> c4>>>>>>>>> .. ..Stall 3 .. .. c3>>>>>>>>> .. .. .. ..Stall 4 .. .. .. c5>>>>>>>>> .. .. ..Other outputs using the same number of stalls are possible.
恩,题目大意就是说,给出每头牛的区间范围,一台机器在同一时间只能为一头牛服务,问最少需要多少台机器。不细心,赋错值卡了一天了。。。。
#include <iostream>#include<cstdio>#include<cstring>#include<queue>#include<algorithm>#define maxn 50050using namespace std;int r[maxn];struct node{ int s,e,p;};node cow[maxn];bool cmp(node a,node b){ if(a.s!=b.s) return a.s<b.s; return a.e<b.e;}struct Node{ int time,pos; friend bool operator < (Node a,Node b) { if(a.time!=b.time) return a.time > b.time; else return a.pos > b.pos; }};priority_queue<Node>q;int main(){ int n; while(~scanf("%d",&n)) { while(!q.empty()) q.pop(); memset(r,0,sizeof(r)); for(int i=1;i<=n;++i) { scanf("%d%d",&cow[i].s,&cow[i].e); cow[i].p=i; } sort(cow+1,cow+n+1,cmp); int k=0; Node now={cow[1].e,cow[1].p}; q.push(now); r[cow[1].p]=++k; for(int i=2;i<=n;++i) { now=q.top(); if(cow[i].s<=now.time) r[cow[i].p]=++k; else { r[cow[i].p]=r[now.pos]; q.pop(); } now={cow[i].e,cow[i].p}; q.push(now); } printf("%d\n",k); for(int i=1;i<=n;++i) printf("%d\n",r[i]); } return 0;}
0 0
- POJ 3190 Stall Reservations 【贪心 区间】
- POJ 3190(Stall Reservations 区间贪心)
- [POJ 3190] Stall Reservations (区间贪心)
- POJ 3190 Stall Reservations 【区间贪心】
- Stall Reservations - POJ 3190 贪心
- POJ 3190 - Stall Reservations(贪心)
- Stall Reservations (poj 3190 贪心)
- poj 3190 Stall Reservations(贪心)
- poj 3190 Stall Reservations 贪心
- POJ-3190 Stall Reservations(贪心)
- POJ 3190 Stall Reservations(贪心)
- poj 3190 Stall Reservations(区间贪心,优先队列)
- poj Stall Reservations(贪心)
- POJ 3190 - Stall Reservations(贪心)
- POJ 3190 Stall Reservations(贪心)
- Poj 3190 Stall Reservations【贪心+优先队列】
- poj 3190 Stall Reservations(贪心)
- POJ-3190-Stall Reservations-优先队列+贪心
- 欢迎使用CSDN-markdown编辑器
- QT5.5+VS2010配置心得
- android获取屏幕尺寸、密度(判断手机屏幕类型)
- LeetCode训练:strstr
- Ios Layer Transform 形变
- POJ 3190 Stall Reservations 【贪心 区间】
- 点滴
- 创建存储过程和java调用存储过程
- 在Windows下安装Hadoop
- Linux负载均衡环境搭建-3 配置nginx为负载均衡前置
- 设计模式之静态代理设计模式
- segue使用及区别点
- ALV GRID 响应回车事件修改内容
- UI之tableView的两个协议UITableViewDataSource、UITableViewDelegate