POJ3190
来源:互联网 发布:国家打击网络暴恐信息 编辑:程序博客网 时间:2024/06/05 19:15
Stall Reservations
Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 5822 Accepted: 2130 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.
Source
USACO 2006 February Silver
抽象一下就是:有几个区间,不相交的区间可以放在一个隔间里,
要使隔间数最少,求每个区间所在的隔间号~
使用优先队列
#include<cstdio>#include<algorithm>#include<queue>#include<iostream>using namespace std;struct node{ int x,y,c; friend bool operator<(node a,node b) { return a.y>b.y;//y从小到大 }}p[50005];bool cmp(node a,node b){ return a.x<b.x;}int t[50005];int main(){ int i,j,n; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d%d",&p[i].x,&p[i].y); p[i].c=i; } int r=0; sort(p,p+n,cmp); priority_queue<node> q; q.push(p[0]); t[p[0].c]=++r; for(i=1;i<n;i++) { node g=q.top(); if(g.y<p[i].x) { t[p[i].c]=t[g.c]; q.pop(); q.push(p[i]); } else { t[p[i].c]=++r; q.push(p[i]); } } printf("%d\n",r); for(int i=0;i<n;i++) printf("%d\n",t[i]); return 0;}
0 0
- poj3190
- poj3190
- POJ3190
- poj3190
- POJ3190
- poj3190
- poj3190 贪心
- POJ3190 Stall Reservations 贪心
- poj3190 (mulitset贪心)
- POJ3190 Stall Reservations 【贪心】
- poj3190 区间贪心 + STL
- Stall Reservations - POJ3190 贪心
- POJ3190-Stall Reservations
- poj3190 poj2393 贪心
- poj3190(区间贪心)
- POJ3190 Stall Reservations
- 贪心(好题)--poj3190
- poj3190(贪心,优先队列)
- HTTP 消息结构
- uml——活动图和状态图
- 操作元素的CSS样式、正则表达式、心得
- JSP JavaBeans
- 在sqlplus中使用退格和上下左右
- POJ3190
- 391.Number of Airplanes in the Sky-数飞机(中等题)
- 机器学习算法--逻辑回归原理介绍
- Java SE基础知识
- MapReduce_TotalSort示例
- Url与Uri与URN的区别:
- 11.12
- Python time模块简介
- 学习安卓相关的网站