POJ - 2456 Aggressive cows(二分查找)
来源:互联网 发布:linux grep命令与管道 编辑:程序博客网 时间:2024/05/20 03:45
Aggressive cows
Time Limit: 1000MS Memory Limit: 65536KB 64bit IO Format: %I64d & %I64u
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?
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
* 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 312849
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.
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.
题意:有N间牛舍,排在一条线上,第i号牛舍在xi的位置。有M头牛,希望将每头牛放在离其他牛尽量远的位置。求最大化最近两头牛的距离。
思路:二分搜索求解,判断条件是可以安排使得任意牛的距离不小于d。只要扫一遍n个牛舍就可以得到答案,O(n)的判断。
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>using namespace std;const int MAXN = 100000 + 1000;int x[MAXN];int n, c;bool countNiu(int d){int npos = x[0];int cnt = 1;for (int i = 1; i < n; i++){if (x[i]>=npos + d){cnt++;npos = x[i];}}if (cnt >= c) return true;return false;}int main(){while (scanf("%d%d", &n, &c) != EOF){for (int i = 0; i < n; i++)scanf("%d", &x[i]);sort(x, x + n);int l = 0; int r = x[n-1]-x[0], m;while (r - l > 1){m = (l + r) / 2;if (countNiu(m)) l = m;else r = m;}printf("%d\n", l);}}
0 0
- POJ - 2456 Aggressive cows(二分查找)
- poj 2456 Aggressive cows (二分查找)
- POJ 2456 Aggressive cows (二分查找)
- poj 2456 Aggressive cows (二分查找)
- [POJ](2456)Aggressive cows ---二分查找+贪心(查找+贪心)
- poj 2456 Aggressive cows(二分查找)
- POJ 2456 Aggressive cows 二分查找
- [ACM] poj 2456 Aggressive cows (二分查找)
- POJ 2456 Aggressive cows(二分查找 最大化最小值)
- POJ 2456 Aggressive cows(二分查找最大化最小值)
- POJ 2456 Aggressive cows(二分)
- POJ 2456 - Aggressive cows(二分)
- poj 2456 Aggressive cows(贪心+二分)
- poj 2456 Aggressive cows(贪心+二分)
- POJ 2456 Aggressive cows(二分)
- POJ 2456 Aggressive cows (二分搜索)
- POJ 2456 Aggressive cows(二分)
- POJ 2456 Aggressive cows (贪心 + 二分)
- 如何改变Xcode字体大小?
- 电脑中常用的快捷键
- Framework of Android: retrofit (2.0)
- centos7下安装phpcms遇到不可写的问题
- Xcode自动注释插件:VVDocumenter-Xcode
- POJ - 2456 Aggressive cows(二分查找)
- CodeForces #322 (div2)
- C语言冒泡排序法分析及代码实现
- IIS7.0设置404错误页,返回500状态码
- 解题报告 之 CodeForces 581D Three Logos
- Android之BaseAdapter—convertView回收机制与动态控件响应
- **LeetCode-Lowest Common Ancestor of a Binary Tree
- hiho一下 第六十周
- SQLServer数据库的导入详细图解