标签:ssi tar blank john pre ++ from org search
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 7924 | Accepted: 3959 |
Description
Input
Output
Sample Input
5 3 1 2 8 4 9
Sample Output
3
Hint
Source
id=2456
题目大意:一个数轴上n个点,每一个点一个整数值,有c个物品。要放在这些点的某几个上,求怎么放能够使随意两个物品间距离的最小值最大,求这个最大值
题目分析:最小值最大,典型二分题。二分距离的值推断
#include <cstdio> #include <algorithm> using namespace std; int const INF = 0x3fffffff; int const MAX = 1e5 + 5; int d[MAX]; int n, c; int cal(int m) { int ans = 0, now = d[0]; for(int i = 1; i < n; ) { while(d[i] < now + m) i ++; ans ++; now = d[i]; } return ans; } int main() { scanf("%d %d", &n, &c); for(int i = 0; i < n; i++) scanf("%d", &d[i]); sort(d, d + n); int r = d[n - 1] - d[0], l = 0, ans = 0; while(l <= r) { int m = (l + r) / 2; int num = cal(m); if(num >= c) { ans = m; l = m + 1; } else r = m - 1; } printf("%d\n", ans); }
POJ 2456 Aggressive cows (二分 基础)
标签:ssi tar blank john pre ++ from org search
原文地址:http://www.cnblogs.com/slgkaifa/p/6839781.html