关闭

BZOJ1651--[Usaco2006 Feb]Stall Reservations 专用牛棚

标签: c++
752人阅读 评论(0) 收藏 举报
分类:

1651: [Usaco2006 Feb]Stall Reservations 专用牛棚

Time Limit: 10 Sec  Memory Limit: 64 MB
Submit: 849  Solved: 484
[Submit][Status][Discuss]

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: * 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

有N头牛,每头牛有个喝水时间,这段时间它将专用一个Stall 现在给出每头牛的喝水时间段,问至少要多少个Stall才能满足它们的要求

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.

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.

Sample Input

5
1 10
2 4
3 6
5 8
4 7

Sample Output

4


OUTPUT DETAILS:

Here's a graphical schedule for this output:

Time 1 2 3 4 5 6 7 8 9 10
Stall 1 c1>>>>>>>>>>>>>>>>>>>>>>>>>>>
Stall 2 .. c2>>>>>> c4>>>>>>>>> .. ..
Stall 3 .. .. c3>>>>>>>>> .. .. .. ..
Stall 4 .. .. .. c5>>>>>>>>> .. .. ..

Other outputs using the same number of stalls are possible.

HINT

不妨试下这个数据,对于按结束点SORT,再GREEDY的做法 1 3 5 7 6 9 10 11 8 12 4 13 正确的输出应该是3


题解

看网上有人用线段树。。。感觉很坑啊

提示说是贪心。。。

先按起始点排序,然后用优先队列存每群牛当前最后一个喝水结束的时间,每有一个新的牛要喝水时就把队列里结束时间最靠前的拿出来比较下,如果可以让新的牛喝水的话就把结束时间设为新的牛的结束时间,否则新建一个‘线程’,最后输出有多少个‘线程’就好了


#include<iostream>
#include<cstdio>
#include<algorithm>
#include<vector>
#include<queue>

#define ll long long

using namespace std;

struct node{
	int s,t;
};

node a[50050];
int n;
priority_queue<int,vector<int>,greater<int> >q;

bool cmp(node x,node y){
	return x.s<y.s;
}

int main(){
	scanf("%d",&n);
	for(int i=0; i<n; i++){
		scanf("%d%d",&a[i].s,&a[i].t);
	}
	sort(a,a+n,cmp);
	for(int i=0; i<n; i++){
		if(q.size()==0){
			q.push(a[i].t);
			continue;
		}
		int t=q.top();
		if(t<a[i].s)q.pop();
		t=a[i].t;
		q.push(t);
	}
	printf("%d\n",q.size());
	
	return 0;
}



0
0
查看评论

[Usaco2006 Feb]Stall Reservations 专用牛棚

[Usaco2006 Feb]Stall Reservations 专用牛棚
  • wang3312362136
  • wang3312362136
  • 2017-07-05 12:24
  • 90

bzoj1651[Usaco2006 Feb]Stall Reservations 专用牛棚

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.....
  • zhb1997
  • zhb1997
  • 2014-06-04 23:15
  • 448

1651: [Usaco2006 Feb]Stall Reservations 专用牛棚

1651: [Usaco2006 Feb]Stall Reservations 专用牛棚 Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 830  Solved: 47...
  • qq_34564984
  • qq_34564984
  • 2016-11-13 18:16
  • 115

bzoj1651: [Usaco2006 Feb]Stall Reservations 专用牛棚

1651: [Usaco2006 Feb]Stall Reservations 专用牛棚 Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 663  Solved: 36...
  • Cynthia_wjyi
  • Cynthia_wjyi
  • 2015-10-25 16:19
  • 238

[BZOJ1651] [Usaco2006 Feb]Stall Reservations 专用牛棚

传送门http://www.lydsy.com/JudgeOnline/problem.php?id=1651题目大意给出奶牛运动的时间段,询问同一时间最多的奶牛数题解线段树或差分序列线段树var x:array[0..3000000,1..4]of longint; i,j,k:longint...
  • slongle_amazing
  • slongle_amazing
  • 2015-10-14 19:28
  • 408

[bzoj1651][Usaco2006 Feb]Stall Reservations 专用牛棚

1651: [Usaco2006 Feb]Stall Reservations 专用牛棚Time Limit: 10 Sec Memory Limit: 64 MB Submit: 930 Solved: 537 [Submit][Status][Discuss] DescriptionO...
  • qq_36993218
  • qq_36993218
  • 2017-08-03 15:11
  • 87

|BZOJ 1651|差分序列|[Usaco2006 Feb]Stall Reservations 专用牛棚

BZOJ 1651 Luogu 2859 from: USACO 2006 Feb Sliver(USACO刷题第4题)首先需要发现的是,覆盖次数最多的点就是答案 然后可以用线段树求解了 但是这里要介绍一个很有用的东西,差分序列 差分序列ff记录a[i]−a[i−1]a[i]-a[i-1]...
  • Darost
  • Darost
  • 2017-06-11 21:16
  • 114

BZOJ 1651: [Usaco2006 Feb]Stall Reservations 专用牛棚

1651: [Usaco2006 Feb]Stall Reservations 专用牛棚 Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 876  Solved: 496 ...
  • BlackJack_
  • BlackJack_
  • 2017-02-24 22:33
  • 623

bzoj 1651: [Usaco2006 Feb]Stall Reservations 专用牛棚 (线段树)

1651: [Usaco2006 Feb]Stall Reservations 专用牛棚 Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 843  Solved: 47...
  • clover_hxy
  • clover_hxy
  • 2016-12-26 07:20
  • 139

BZOJ 1651: [Usaco2006 Feb]Stall Reservations 专用牛棚

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.....
  • u013810072
  • u013810072
  • 2014-08-07 09:59
  • 424
    -广告-
    一个极其温馨的提示
    个人资料
    • 访问:48282次
    • 积分:1744
    • 等级:
    • 排名:千里之外
    • 原创:127篇
    • 转载:1篇
    • 译文:0篇
    • 评论:22条
    最新评论