POJ 2456 Aggressive cows<二分贪心>
2017-07-26 08:55
501 查看
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.
二分的题目,用二分加判断函数,判断函数里,我们只要对二分传进来的距离进行贪心,看这一种的距离下是否能放入C头牛,能放入的话就代表可行,继续向后寻找更大的可能
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 11952 | Accepted: 5842 |
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.
二分的题目,用二分加判断函数,判断函数里,我们只要对二分传进来的距离进行贪心,看这一种的距离下是否能放入C头牛,能放入的话就代表可行,继续向后寻找更大的可能
#include<cstdio> #include<cctype> #include<iostream> #include<stack> #include<map> #include<cstring> #include<string> #include<sstream> #include<queue> #include<set> #include<algorithm> using namespace std ; int a[100005]; int n,c; int f(int mid){ int ans=1; int tp=a[0]; for(int i=1;i<n;i++){ if(a[i]-tp>=mid) { ans++; tp=a[i]; } if(ans>=c) return 1; } return 0; } int main() { while(~scanf("%d %d",&n,&c)){ for(int i=0;i<n;i++) scanf("%d",&a[i]); sort(a,a+n); int l=1,r=a[n-1]; while(r-l>1){ int m=(r+l)/2; if(f(m)) l=m; else r=m; } printf("%d\n",l); } return 0 ; }
相关文章推荐
- POJ - 2456/USACO - Feb05 Gold Aggressive cows 二分搜索+区间选点+贪心
- 【贪心专题】POJ 2456 Aggressive cows && NYOJ 586 疯牛(最大化最小值 贪心+二分搜索)
- poj2456 二分搜索 <挑战程序设计竞赛>
- Aggressive cows POJ - 2456 二分 最大值最小化
- 二分-H Aggressive cows (POJ - 2456 )
- NYOJ 586 疯牛 & POJ 2456(二分搜索 + 贪心)(最大化最小值)
- poj 2456 最大化最小值(二分+贪心)
- POJ 3273 Monthly Expense <二分>
- POJ 2456 Aggressive cows (二分 + 贪心)
- poj 2456 Aggressive cows (二分+贪心思想)
- POJ 2456 Aggressive cows 和 NYOJ 586 疯牛【二分枚举+贪心】
- POJ 2456 疯牛(二分+贪心)
- Poj 2456 Aggressive cows ( 二分+贪心
- POJ 1201 Intervals <差分约束系统 + SPFA / 贪心 + 树状数组>
- POJ 2082 Terrible Sets 51nod 1102 面积最大的矩形 《题意好难懂---<贪心+单调栈>》
- POJ 3294 Life Forms <后缀数组+二分>
- poj1328 区间贪心 <挑战程序设计竞赛>
- POJ 3258 River Hopscotch<二分>
- nyoj586||poj2456 二分+贪心
- POJ 3111 K Best <最大化平均,二分>