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

    这里写图片描述

    对结果进行二分搜索
    计算当前的mid可以分多少份
    与k进行比较
    判断条件也很好写

    然而……

    这是卡精度的一题
    需要注意的是因为题意
    所以最后结果不可以四舍五入
    需要进行舍弃

    而进制转换和double的灵异机制
    导致这一题最后的数据处理会很麻烦

    这里是因为逼得……
    所以用了一种很逗的方式输出……

    测试数据:

    4 2540
    8.02
    7.43
    4.57
    5.39

    =>0.01

    4 2542
    8.02
    7.43
    4.57
    5.39

    =>0.00

    #include<stdio.h>
    double a[10200];
    int n,k;
    bool judge(double m) {
        int cnt=0;
        for(int i=0; i<n; i++)
            cnt+=a[i]/m;
        if(cnt>=k)
            return true;
        else
            return false;
    }
    int main() {
        while(scanf("%d %d",&n,&k),n||k) {
            for(int i=0; i<n; i++)
                scanf("%lf",&a[i]);
            double l=0.0,r=10000000.0,res;
            while(r-l>1e-6) {
                double mid=(l+r)/2;
                if(judge(mid)) {
                    l=mid;
                    res=mid;
                } else
                    r=mid;
            }
            __int64 t=res*100.0+0.0001;
            printf("%I64d.%02I64d
    ",t/100,t%100);
        }
        return 0;
    }
    

    题目地址:【POJ】[1064]Cable master

  • 相关阅读:
    GitHub Android Libraries Top 100 简介
    GitHub Top 100 的项目(iOS)
    iOS 学习资源
    HTTP和GET/POST请求(NSURLConnection)
    RunLoop
    HTML5 拖放
    网络安全与加密
    Cocoapods的安装
    iOS中的单例模式
    SDWebImage
  • 原文地址:https://www.cnblogs.com/BoilTask/p/12569480.html
Copyright © 2011-2022 走看看