POJ2456 Aggressive cows(二分+贪心)
来源:互联网 发布:c语言char怎么赋值 编辑:程序博客网 时间:2024/05/17 23:55
假设C(d)为满足所有牛之间的距离都不小于d。先对牛舍的位置排序,然后二分枚举d,寻找满足条件的d。
#include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>#include<algorithm>#include<queue>#include<set>#include<map>#include<vector>#include<cmath>#define ll __int64#define INF 0x3fffffffusing namespace std;int n,m;int x[100005];bool C(int d){ int num=1; int a=x[0]; int i=1; while(num<m) { if(a+d<=x[i]) { num++; a=x[i]; i++; } else i++; if(i==n) break; } if(num==m) return true; else return false;}void solve(){ int l=0,r=x[n-1]+1; while(r-l>1) { int mid=(r+l)/2; if(C(mid)) l=mid; else r=mid; } cout<<l<<endl;}int main(){ //freopen("d:\\Test.txt","r",stdin); cin>>n>>m; for(int i=0;i<n;i++) { scanf("%d",&x[i]); } sort(x,x+n); solve(); return 0;}
0 0
- POJ2456 Aggressive cows(二分+贪心)
- poj2456-Aggressive cows(nyoj586)【贪心-二分】
- POJ2456(Aggressive cows)(贪心+二分)
- POJ2456 Aggressive cows (二分)
- POJ2456 Aggressive cows 二分
- 【SPOJ-AGGRCOW】【BZOJ1734】【POJ2456】Aggressive cows【二分】【贪心】
- POJ2456 Aggressive cows 二分+判断
- POJ2456 -- Aggressive cows(二分搜索)
- POJ2456 Aggressive cows(二分搜索)
- POJ2456 Aggressive cows(对整数二分)
- POJ2456 Aggressive cows 最大值最小化(二分)
- POJ2456 Aggressive cows
- POJ2456 Aggressive cows
- POJ2456-Aggressive cows
- POJ2456 Aggressive cows
- POJ2456 Aggressive cows
- POJ2456-Aggressive cows
- poj2456 Aggressive cows
- 《世界如此险恶,你要内心强大》读书笔记(四)
- Linux的五个查找命令:find,locate,whereis,which,type
- 《世界如此险恶,你要内心强大》读书笔记(五)
- 增加memcahced自启动
- java,自增运算++的深入研究
- POJ2456 Aggressive cows(二分+贪心)
- Android 导入项目时出现的各类错误
- Dreamoon and Sums 数学
- UML 类图介绍
- x264_encoder_open
- Failed to create the Java Virtual Machine
- Linux查看硬件信息以及驱动设备的命令
- 程序编码
- 数据结构 最大子序列和