Aggressive cows
来源:互联网 发布:sql如何导入数据库 编辑:程序博客网 时间:2024/06/07 10:55
题目: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?
思路:将C头牛放在N个点中的C个点上的最大距离是:dis=(Pmax-Pmin)/(C-1)。然后以dis为上限0为下限进行二分搜索,并利用贪心法。
import java.util.Arrays;import java.util.Scanner;public class Aggressivecows { public static void main(String[] args) { int low,high,mid; Scanner in=new Scanner(System.in); n=in.nextInt(); c=in.nextInt(); arr=new int[n]; for (int i = 0; i < arr.length; i++) { arr[i]=in.nextInt(); } Arrays.sort(arr); high=(arr[n-1]-arr[0])/(c-1); low=0; while (low<=high) { mid=(low+high)/2; if (Greedy(mid)) { low=mid+1; }else { high=mid-1; } } System.out.println(low-1); // TODO Auto-generated method stub } static int arr[]; static int n; static int c; public static boolean Greedy(int x){ int num=1,d=arr[0]; for (int i = 1; i < n; i++) { if (arr[i]-d>=x) { num++; d=arr[i]; } } if(num>=c){ return true; } return false; }}
阅读全文
0 0
- Aggressive cows
- Aggressive cows
- Aggressive cows
- Aggressive cows
- Aggressive cows
- Aggressive Cows
- Aggressive cows
- Aggressive cows
- 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
- POJ2456 Aggressive cows
- 请求乱码问题
- 加载jdbc驱动程序的三种不同方式
- 友盟分享的集成
- js如何添加鼠标右击事件
- Android WebView加载后有白边框的问题
- Aggressive cows
- 【转】Java 9 新特性汇总
- 微信小程序 关闭调试模式后显示加载中
- 详解SVN 的使用
- IDE搭建JFinal环境
- Python3 JSON 数据解析
- nginx日志中记录post数据
- linux contab 易错搞混设置时间
- python 在pycharm中 爬虫