切香肠 思维二分答案

Posted qq62bae010a10e9

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了切香肠 思维二分答案相关的知识,希望对你有一定的参考价值。

​​题目地址​​

思路:

切蛋糕,切钢管 都是二分答案 = =。这种题最重要的一点是先排序找最小的,然后要与最后的答案比较,其它oj上题的数据果然水啊。
这里先乘100减小精度误差。

package jisuanke;

import java.math.BigInteger;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;

public class MainF
public static void main(String[] args)
int cnt = 0;
Scanner cin = new Scanner(System.in);
int n = cin.nextInt();
int m = cin.nextInt();
double a[] = new double[100005];
for(int i = 0;i < n;i++)
a[i] = 100 * cin.nextDouble();

int l = 1, r = 10000000;
while(l <= r)
int sum = 0;
int mid = (l + r) >>> 1;
for(int i = 0;i < n;i++)
sum += a[i] / mid;

if(sum >= m) l = mid + 1;
else r = mid - 1;


System.out.println(String.format("%.2f",r * 1.0 / 100));



以上是关于切香肠 思维二分答案的主要内容,如果未能解决你的问题,请参考以下文章

P1577 切绳子(二分)

The 2019 ICPC Asia Shanghai Regional Contest---H Tree Partition 二分答案,从下往上切最大子树

省赛复习 二分答案+思维+图论

POJ 3122 Pie二分答案

POJ 1064 Cable master (二分答案)

刷题--二分法