【bzoj2501】[usaco2010 Oct]Soda Machine
2017-11-07 10:50
363 查看
Description
To meet the ever-growing demands of his N (1 <= N <= 50,000) cows,
Farmer John has bought them a new soda machine. He wants to figure
out the perfect place to install the machine.
The field in which the cows graze can be represented as a one-dimensional
number line. Cow i grazes in the range A_i..B_i (1 <= A_i <= B_i;
A_i <= B_i <= 1,000,000,000) (a range that includes its endpoints),
and FJ can place the soda machine at any integer point in the range
1..1,000,000,000. Since cows are extremely lazy and try to move
as little as possible, each cow would like to have the soda machine
installed within her grazing range.
Sadly, it is not always possible to satisfy every cow’s desires.
Thus FJ would like to know the largest number of cows that can be
satisfied.
To demonstrate the issue, consider four cows with grazing ranges
3..5, 4..8, 1..2, and 5..10; below is a schematic of their grazing
ranges:
Sample Output
As can be seen, the first, second and fourth cows share the point 5,
but the third cow’s grazing range is disjoint. Thus, a maximum of
3 cows can have the soda machine within their grazing range.
有N个人要去膜拜JZ,他们不知道JZ会出现在哪里,因此每个人有一个活动范围,只要JZ出现在这个范围内就能被膜拜,
伟大的JZ当然希望膜拜他的人越多越好,但是JZ不能分身,因此只能选择一个位置出现,他最多可以被多少人膜拜呢,
这个简单的问题JZ当然交给你了
3
OUTPUT DETAILS:
If the soda machine is placed at location 5, cows 1, 2, and 4 can be
satisfied. It is impossible to satisfy all four cows.
Input
Line 1: A single integer: N
Lines 2..N+1: Line i+1 contains two space-separated integers: A_i
and B_i
Output
Line 1: A single integer representing the largest number of cows
whose grazing intervals can all contain the soda machine.
Sample Input
4
3 5
4 8
1 2
5 10
Sample Output
3
OUTPUT DETAILS:
If the soda machine is placed at location 5, cows 1, 2, and 4 can be
satisfied. It is impossible to satisfy all four cows.
题解
离散化+查分统计每个点被覆盖了几次。
代码
To meet the ever-growing demands of his N (1 <= N <= 50,000) cows,
Farmer John has bought them a new soda machine. He wants to figure
out the perfect place to install the machine.
The field in which the cows graze can be represented as a one-dimensional
number line. Cow i grazes in the range A_i..B_i (1 <= A_i <= B_i;
A_i <= B_i <= 1,000,000,000) (a range that includes its endpoints),
and FJ can place the soda machine at any integer point in the range
1..1,000,000,000. Since cows are extremely lazy and try to move
as little as possible, each cow would like to have the soda machine
installed within her grazing range.
Sadly, it is not always possible to satisfy every cow’s desires.
Thus FJ would like to know the largest number of cows that can be
satisfied.
To demonstrate the issue, consider four cows with grazing ranges
3..5, 4..8, 1..2, and 5..10; below is a schematic of their grazing
ranges:
1 2 3 4 5 6 7 8 9 10 11 12 13 |---|---|---|---|---|---|---|---|---|---|---|---|-... aaaaaaaaa bbbbbbbbbbbbbbbbb ccccc ddddddddddddddddddddd
Sample Output
As can be seen, the first, second and fourth cows share the point 5,
but the third cow’s grazing range is disjoint. Thus, a maximum of
3 cows can have the soda machine within their grazing range.
有N个人要去膜拜JZ,他们不知道JZ会出现在哪里,因此每个人有一个活动范围,只要JZ出现在这个范围内就能被膜拜,
伟大的JZ当然希望膜拜他的人越多越好,但是JZ不能分身,因此只能选择一个位置出现,他最多可以被多少人膜拜呢,
这个简单的问题JZ当然交给你了
3
OUTPUT DETAILS:
If the soda machine is placed at location 5, cows 1, 2, and 4 can be
satisfied. It is impossible to satisfy all four cows.
Input
Line 1: A single integer: N
Lines 2..N+1: Line i+1 contains two space-separated integers: A_i
and B_i
Output
Line 1: A single integer representing the largest number of cows
whose grazing intervals can all contain the soda machine.
Sample Input
4
3 5
4 8
1 2
5 10
Sample Output
3
OUTPUT DETAILS:
If the soda machine is placed at location 5, cows 1, 2, and 4 can be
satisfied. It is impossible to satisfy all four cows.
题解
离散化+查分统计每个点被覆盖了几次。
代码
#include<cstdio> #include<algorithm> #include<cmath> #include<iostream> #include<cstring> #include<queue> typedef long long ll; using namespace std; inline int read() { int x=0;char ch=getchar(); while (ch<'0'||ch>'9') ch=getchar(); while (ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar(); return x; } int n,l[50005],r[50005],a[100005],sum[100005],ans,tot; int main() { n=read(); for (int i=1;i<=n;i++) { l[i]=read();r[i]=read()+1; a[++tot]=l[i];a[++tot]=r[i]; } sort(a+1,a+tot+1); for (int i=1;i<=n;i++) { l[i]=lower_bound(a+1,a+tot+1,l[i])-a; r[i]=lower_bound(a+1,a+tot+1,r[i])-a; sum[l[i]]++; sum[r[i]]--; } for (int i=1;i<=2*n;i++) { sum[i]+=sum[i-1]; ans=max(ans,sum[i]); } printf("%d",ans); return 0; }
相关文章推荐
- BZOJ 2501: [usaco2010 Oct]Soda Machine 差分 离散化
- 离散化+区间更新+最大结点统计(或优先队列)——[usaco2010 Oct]Soda Machine
- BZOJ 2501 Soda Machine
- [BZOJ1782][Usaco2010 Feb]slowdown 慢慢游(dfs序+线段树)
- BZOJ 1708: [Usaco2007 Oct]Money奶牛的硬币( dp )
- BZOJ 1669: [Usaco2006 Oct]Hungry Cows饥饿的奶牛( LIS )
- BZOJ 1782: [Usaco2010 Feb]slowdown 慢慢游( BIT + dfs )
- BZOJ1782: [Usaco2010 Feb]slowdown 慢慢游
- 【BZOJ】1666 [Usaco2006 Oct]Another Cow Number Game 奶牛的数字游戏
- 【bzoj 1600】【Usaco2008 Oct】建造栅栏 (递推) 题解&代码
- BZOJ 1778: [Usaco2010 Hol]Dotp 驱逐猪猡
- [BZOJ1669][Usaco2006 Oct]Hungry Cows饥饿的奶牛
- BZOJ 1733: [Usaco2005 feb]Secret Milking Machine 神秘的挤奶机
- 【BZOJ】2014: [Usaco2010 Feb]Chocolate Buying(贪心)
- 【BZOJ1778】[Usaco2010 Hol]Dotp 驱逐猪猡 期望DP+高斯消元
- BZOJ_1600_[Usaco2008_Oct]_建造栅栏_(动态规划)
- bzoj1601: [Usaco2008 Oct]灌水
- bzoj 1733: [Usaco2005 feb]Secret Milking Machine 神秘的挤奶机 二分+最大流
- BZOJ1669: [Usaco2006 Oct]Hungry Cows饥饿的奶牛
- BZOJ_1778_[Usaco2010_Hol]_Dotp_驱逐猪猡_(期望动态规划+高斯消元+矩阵)