Aggressive cows(最大化最小值问题(二分搜索))
来源:互联网 发布:乐视没有mac版 编辑:程序博客网 时间:2024/06/05 16:13
题目来源:http://poj.org/problem?id=2456
【题意】
有n个牛舍放在一维坐标轴的不同位置,把m头牛分别放进不同的牛舍,问,任意两头牛之间最大距离是多少。
【思路】
最大化最小值问题,采用二分搜索,搜索一个最大值,满足可以将这m头牛放进不同的牛舍里,即,若是当前位置是d[pre],而用二分搜索出的一个值是d,那么下一个牛舍next就必须符合d[next]-d[pre]>=d.
【代码】
#include<cstdio>#include<cstring>#include<algorithm>#include<string>#include<cmath>#include<iostream>#include<map>#include<queue>using namespace std;typedef long long LL;const int INF=1e9;LL dis[100000+10];int n,m;bool Is(int t){ int pre=0; for(int i=1;i<m;i++) { int next=pre+1; while(next<n&&dis[next]-dis[pre]<t) { next++; } if(next==n) return false; pre=next; } return true;}int main(){ while(~scanf("%d%d",&n,&m)) { for(int i=0;i<n;i++) scanf("%lld",&dis[i]); sort(dis,dis+n); int l=0,r=INF; while(r-l>1) { int mid=(l+r)/2; if(Is(mid)) l=mid; else r=mid; } printf("%d\n",l); }}
写法一样的题:http://blog.csdn.net/duan_1998/article/details/64904267
原题链接:http://poj.org/problem?id=1064
0 0
- Aggressive cows(最大化最小值问题(二分搜索))
- POJ - 2456 Aggressive cows(二分搜索:最大化最小值)
- POJ 2456 Aggressive cows(二分搜索最大化最小值)
- Aggressive cows(二分查找最大化最小值)
- poj 2456 Aggressive cows (最小值最大化二分问题)
- Aggressive cows(最大化最小值问题)
- 【贪心专题】POJ 2456 Aggressive cows && NYOJ 586 疯牛(最大化最小值 贪心+二分搜索)
- 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 25456 Aggressive cows 【二分最大化最小值】
- POJ 2456 Aggressive cows【二分:最大化最小值】
- Aggressive cows POJ 2456 (二分,最大化最小值)
- POJ 2456 Aggressive cows (牛舍安放_二分+最大化最小值)
- POJ 2456 Aggressive cows——二分查找(最大化最小值)
- kmp 算法
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 5 理解ROS节点
- 投资案例分析:投资创业公司时,VC 关注什么?
- 枚举继承自int
- hadoop2.6集群下Zookeeper与Hbase的安装与配置
- Aggressive cows(最大化最小值问题(二分搜索))
- centos7开机碰到emergency mode如何解决
- kubenetes源码分析之DNS(一)
- Flex布局(一)
- 【正一专栏】巴萨四大皆空怎么办
- centos7如何挂载移动硬盘、U盘等
- 开发商城支付功能时解决订单已经支付的bug
- LINUX中yum源的配置以及rpm命令
- 滴滴参赛代码知识点解读--pickle,glob,shulit, sys, os模块