POJ - 2456 Aggressive cows 二分
来源:互联网 发布:jquery.color.js 下载 编辑:程序博客网 时间:2024/05/16 15:53
题目大意:有N个牛舍在同一条直线上,每个牛舍都有相应的坐标
现在有C头牛,要求放在这牛舍中,使得相邻两头牛之间的距离的最小值达到最大
解题思路:直接二分距离,然后再进行判断
这题得反省一下了:因为我把cur重复定义了,所以一直找不到错误,标记一下。。。
#include<cstdio>#include<algorithm>#include<cstring>using namespace std;#define maxn 100010int pos[maxn];int n, c;int find(int s, int e, int dis) { int l = s, r = e; while(l < r) { int mid = (l + r) / 2; if(pos[mid] >= dis) r = mid; else l = mid + 1; } return l;}bool judge(int mid) { int dis = pos[0], cur = 1; for(int i = 1; i < c; i++) { dis += mid; if(dis > pos[n - 1]) return false; cur = find(cur, n - 1, dis);// int cur = lower_bound(pos, pos + n, dis) - pos; dis = pos[cur]; } return true;}int solve() { int l = 0, r = pos[n - 1]; while(l <= r) { int mid = (l + r) / 2; if(judge(mid)) l = mid + 1; else r = mid - 1; } return l - 1;}void init() { for(int i = 0; i < n; i++) scanf("%d", &pos[i]); sort(pos, pos + n);}int main() { while(scanf("%d%d", &n, &c) != EOF) { init(); printf("%d\n", solve()); } return 0;}
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(二分)
- 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 3258 (二分)
- POJ 2456 Aggressive cows(二分)
- POJ 2456 - Aggressive cows(二分)
- poj 2456 Aggressive cows,二分,最大化最小值
- poj 2456 Aggressive cows(贪心+二分)
- 程序员身体自测健康5大标准
- poj 3041(最小点覆盖)
- 第十一周项目三 点类派生直线类
- a标签的href传递信息
- 软件概要设计
- POJ - 2456 Aggressive cows 二分
- 栈的压入、弹出序列
- 数据表示----机器数
- UIView的alpha、hidden和opaque属性之间的关系和区别
- C#中的override和new关键字
- Bash下的变量配置规则
- 高级Java程序员值得拥有的10本书
- CSU 1527 - Bounty Hunter(DP‘双调旅行商问题)
- poj1039 几何