zoukankan      html  css  js  c++  java
  • luogu P1577 切绳子

    题目描述

    有N条绳子,它们的长度分别为Li。如果从它们中切割出K条长度相同的

    绳子,这K条绳子每条最长能有多长?答案保留到小数点后2位。

    输入输出格式

    输入格式:

    第一行两个整数N和K,接下来N行,描述了每条绳子的长度Li。

    输出格式:

    切割后每条绳子的最大长度。

    输入输出样例

    输入样例#1:
    4 11
    8.02
    7.43
    4.57
    5.39
    输出样例#1:
    2.00
    二分答案+检验,卡精度,好恶心
    #include<cstdio>
    #include<cmath>
    
    int k,n;
    double len[10005];
    bool Check(double x) 
    {
        int num=0;
        for(int i=1;i<=n;i++)
            num += (int)(len[i]/x);
        if(num>=k)return true;
        return false;
    }
    int main() 
    {
        scanf("%d%d",&n,&k);
        for(int i=1;i<=n;i++)
            scanf("%lf",len+i);
        double l=0,r=10000000;
        double ans;
        for(int i=1;i<=100;i++)
        {
            double mid=(l+r)/2;
            if(Check(mid)) l=mid;
            else r=mid;
        }
        printf("%.2f
    ",floor(r*100)/100);
        return 0;
    }
  • 相关阅读:
    求某个数的位数公式
    ArrayList和lInkedList比较
    队列
    抽象数据结构-栈
    LinkedList的实现
    ArrayList的实现
    Iterator和List的一些问题
    SCHEMA约束
    DTD约束
    XML解析
  • 原文地址:https://www.cnblogs.com/sssy/p/7091762.html
Copyright © 2011-2022 走看看