poj——2456Aggressive cows(二分搜索 求牛牛之间最大距离)
2016-08-09 06:33
537 查看
Aggressive cows
Description
Farmer John has built a new long barn, with N (2 <= N <= 100,000) stalls. The stalls are located along a straight line at positions x1,...,xN (0 <= xi <= 1,000,000,000).
His C (2 <= C <= N) cows don't like this barn layout and become aggressive towards each other once put into a stall. To prevent the cows from hurting each other, FJ want to assign the cows to the stalls, such that the minimum distance between any two of them
is as large as possible. What is the largest minimum distance?
Input
* Line 1: Two space-separated integers: N and C
* Lines 2..N+1: Line i+1 contains an integer stall location, xi
Output
* Line 1: One integer: the largest minimum distance
Sample Input
Sample Output
Hint
OUTPUT DETAILS:
FJ can put his 3 cows in the stalls at positions 1, 4 and 8, resulting in a minimum distance of 3.
Huge input data,scanf is recommended.
Source
USACO 2005 February Gold
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 11212 | Accepted: 5502 |
Farmer John has built a new long barn, with N (2 <= N <= 100,000) stalls. The stalls are located along a straight line at positions x1,...,xN (0 <= xi <= 1,000,000,000).
His C (2 <= C <= N) cows don't like this barn layout and become aggressive towards each other once put into a stall. To prevent the cows from hurting each other, FJ want to assign the cows to the stalls, such that the minimum distance between any two of them
is as large as possible. What is the largest minimum distance?
Input
* Line 1: Two space-separated integers: N and C
* Lines 2..N+1: Line i+1 contains an integer stall location, xi
Output
* Line 1: One integer: the largest minimum distance
Sample Input
5 3 1 2 8 4 9
Sample Output
3
Hint
OUTPUT DETAILS:
FJ can put his 3 cows in the stalls at positions 1, 4 and 8, resulting in a minimum distance of 3.
Huge input data,scanf is recommended.
Source
USACO 2005 February Gold
#include<iostream> #include<string> #include<cmath> #include<cstring> #include<algorithm> using namespace std; int ub,lb; int n,m; int a[100004]; bool C(int x) { int d=0; for(int i=1;i<m;i++) { int k=d+1; while(k<n&&a[k]-a[d]<x) { k++; } if(k==n)return 0; d=k; } return 1; } void solve() { while(ub-lb>1) { int mid=(ub+lb)/2; if(C(mid))lb=mid; else ub=mid; } } int main() { scanf("%d%d",&n,&m); for(int i=0;i<n;i++) scanf("%d",&a[i]); sort(a,a+n); ub=a[n-1]-a[0]; lb=0; solve(); printf("%d\n",lb); return 0; }
相关文章推荐
- poj 2187 凸包+平面上点之间最大距离
- POJ - 3273 Monthly Expense(二分搜索:最小化最大值)
- poj 3273 Monthly Expense (二分搜索,最小化最大值)
- POJ-3162 Walking Race (求树上两点之间最大距离)
- poj——1064Cable master(二分搜索 求绳子可以满足的最大长度)
- 二分搜索求最大值最小化--poj2456
- POJ 2455 Secret Milking Machine(搜索-二分,网络流-最大流)
- POJ 2455 Secret Milking Machine(搜索-二分,网络流-最大流)
- poj 2112 Optimal Milking(最大费用流+dinic算法+二分搜索)
- poj 2112(二分搜索+最短路+最大流)
- POJ 3258 River Hopscotch(二分·最小距离最大)
- POJ 2112--Optimal Milking【二分找最大距离的最小值 && 最大流dinic】
- poj 2112 最大流求二分图匹配/二分搜索
- POJ 3258 River Hopscotch(二分·最小距离最大)
- POJ 2455 Secret Milking Machine(搜索-二分,网络流-最大流)
- poj 2187 Beauty Contest(凸包求解多节点的之间的最大距离)
- poj 3273 Monthly Expense (二分搜索,最小化最大值)
- poj 2112 Optimal Milking(二分搜索+最大流)
- poj 2926 求n维坐标点之间的最大距离
- poj 2112 Optimal Milking(最大费用流+dinic算法+二分搜索)