↓ Skip to main content
  1. Posts/

BZOJ 1651: [Usaco2006 Feb]Stall Reservations 专用牛棚 (前缀和)

·626 words·2 mins
Note: This article is available in Chinese only. 本文暂无英文版本。 View original

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

Time Limit: 10 Sec Memory Limit: 64 MB Submit: 700 Solved: 393 [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

思路:求所有点中的最大的厚度就是答案。前缀和搞之。1A.

代码实现
 1/* ***********************************************
 2Author :111qqz
 3Created Time :2016年04月11日 星期一 20时15分13秒
 4File Name :code/bzoj/1651.cpp
 5************************************************ */
 6
 7#include <cstdio>
 8#include <cstring>
 9#include <iostream>
10#include <algorithm>
11#include <vector>
12#include <queue>
13#include <set>
14#include <map>
15#include <string>
16#include <cmath>
17#include <cstdlib>
18#include <ctime>
19#define fst first
20#define sec second
21#define lson l,m,rt<<1
22#define rson m+1,r,rt<<1|1
23#define ms(a,x) memset(a,x,sizeof(a))
24typedef long long LL;
25#define pi pair < int ,int >
26#define MP make_pair
27
28using namespace std;
29const double eps = 1E-8;
30const int dx4[4]={1,0,0,-1};
31const int dy4[4]={0,-1,1,0};
32const int inf = 0x3f3f3f3f;
33const int N=1E6+7;
34int n;
35int p[N];
36int main()
37{
38	#ifndef  ONLINE_JUDGE
39	freopen("code/in.txt","r",stdin);
40  #endif
41	scanf("%d",&n);
42	ms(p,0);
43	for ( int i = 1 ; i <= n ; i++)
44	{
45	    int l,r;
46	    scanf("%d %d",&l,&r);
47	    p[l]++;
48	    p[r+1]--;
49	}
50	for ( int i = 1 ; i <= 1000000 ; i++)
51	{
52	    p[i] = p[i]+p[i-1];
53	}
54
55	int ans = 0 ;
56	for ( int i = 1 ; i <= 1000000 ; i++) ans = max(ans,p[i]);
57
58	printf("%d\n",ans);
59
60  #ifndef ONLINE_JUDGE
61  fclose(stdin);
62  #endif
63    return 0;
64}

Related

BZOJ 1637: [Usaco2007 Mar]Balanced Lineup (前缀和乱搞)

·1332 words·3 mins
1637: [Usaco2007 Mar]Balanced Lineup # Time Limit: 5 Sec Memory Limit: 64 MB Submit: 503 Solved: 336 [Submit][Status][Discuss] Description # Farmer John 决定给他的奶牛们照一张合影,他让 N (1 ≤ N ≤ 50,000) 头奶牛站成一条直线,每头牛都有它的坐标(范围: 0..1,000,000,000)和种族(0或1)。 一直以来 Farmer John 总是喜欢做一些非凡的事,当然这次照相也不例外。他只给一部分牛照相,并且这一组牛的阵容必须是“平衡的”。平衡的阵容,指的是在一组牛中,种族0和种族1的牛的数量相等。 请算出最广阔的区间,使这个区间内的牛阵容平衡。区间的大小为区间内最右边的牛的坐标减去最左边的牛的坐标。 输入中,每个种族至少有一头牛,没有两头牛的坐标相同。

BZOJ 1635: [Usaco2007 Jan]Tallest Cow 最高的牛 (差分序列(前缀和的逆))

·823 words·2 mins
1635: [Usaco2007 Jan]Tallest Cow 最高的牛 # Time Limit: 5 Sec Memory Limit: 64 MB Submit: 472 Solved: 278 [Submit][Status][Discuss] Description # FJ’s N (1 <= N <= 10,000) cows conveniently indexed 1..N are standing in a line. Each cow has a positive integer height (which is a bit of secret). You are told only the height H (1 <= H <= 1,000,000) of the tallest cow along with the index I of that cow. FJ has made a list of R (0 <= R <= 10,000) lines of the form “cow 17 sees cow 34”. This means that cow 34 is at least as tall as cow 17, and that every cow between 17 and 34 has a height that is strictly smaller than that of cow 17. For each cow from 1..N, determine its maximum possible height, such that all of the information given is still correct. It is guaranteed that it is possible to satisfy all the constraints.

前缀和问题总结

·732 words·2 mins
There are two types of problems solvable by partial sum. 1.Problems which you are asked to answer some queries about the sum of a part of elements (without modify queries). Solution of all of this problems are the same. You just need to know how to solve one of them. Example : You are asked some queries on an array _a_1, _a_2, …a, n. Each query give you numbers l and r and you should print a__l + a__l + 1 + … + a__r .

hdu 5416 CRB and Tree ( 2015 多校 #10 )

·600 words·2 mins
http://acm.hdu.edu.cn/showproblem.php?pid=5416 # 题意:给出一棵树(n<=1E5),定义二元函数函数f(u,v) (u可以等于v)表示节点u到节点v经过的路径的权值的异或和。给出q组查询(q<=10),每组一个s,问有多少对无序点对(u,v)满足f(u,v)=s. 思路:类似codeforces #340 div 2 E XOR and Favorite Number 先dfs,处理出从根节点都任意节点的异或前缀和。然后对于每个询问o(n)扫一遍,统计sum[i]^s出现多少次。 总的时间复杂度为O(Tqn);

hdu 5327 Olympiad (2015 多校 #4 )

·390 words·1 min
http://acm.hdu.edu.cn/showproblem.php?pid=5327 题意:问给出的区间[a,b]中有多少个美丽数,美丽数的定义是所有数字都不相同,如123是,100不是,333也不是。 思路:预处理1..100000的美丽数,可以把每个数字拆开放在set里,比较set的size和位数来实现。 然后用前缀和。