zoukankan      html  css  js  c++  java
  • 【POJ】1064Cable master

    白皮书的二分

    题意:有n条绳子,他们的长度分别为li,从他们中切个出k条长度相同的绳子的话,这k条绳子每条最长能有多长?保留小数点后两位

    分析:二分

    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #define maxn 10010
    #define INF 100001
    double a[maxn];
    int n,k;
    
    bool dix(double x)
    {
        int num=0,i;
        for(i=0;i<n;++i)
            num+=(int)(a[i]/x);
        return num>=k;//满足条件是返回true,不满足返回false 
    }
    
    int main()
    {
        while(scanf("%d%d",&n,&k)!=EOF)
        {
            int i;
            for(i=0;i<n;++i)
                scanf("%lf",&a[i]);
            double left=0,right=INF,mid;
            i=1000;
            while(i--)
            {
                mid=(left+right)/2;
                if(dix(mid))
                    left=mid;
                else
                    right=mid;
            }
            printf("%0.2f
    ",floor(right*100)/100);//注意精度,可不明白%0.2lf输出为什么会错 
        }
        return 0;
    } 
  • 相关阅读:
    注意
    被虐的很惨
    在cmd中可以运行java,但是不能用javac
    Linux常用命令
    安装JDK和eclipse
    重装win7
    小希的迷宫
    并查集——The Suspects
    BFS宽度优先搜索
    括号匹配
  • 原文地址:https://www.cnblogs.com/Kohinur/p/9029921.html
Copyright © 2011-2022 走看看