zoukankan      html  css  js  c++  java
  • 【hoj】1604 cable master

    简单,二分法,可是在oj上交的时候会有精度的限制,所以仅仅能把数扩得大一点,并且在扩的时候为防止尾数会自己主动生成一些非零数,所以还是自己吧扩到的位置设置为0,还有输出时由于%.2lf会自己有4设5入,所以能够自己算出小数点后两位的数值,在输出,保证要求的精度

    #include <iostream>
    #include <stdio.h>
    #include <algorithm>
    #define MAX 10010
    using namespace std;
    
    long long input[MAX];
    int m,n;
    bool cmp(int a,int b)
    {
        return a<b;
    }
    bool judge(int mid)
    {
        int x = 0;
        for(int i = 0;i < n;i++){
            x += input[i] / mid;
        }
        if(x >= m)
            return true;
        else
            return false;
    }
    int main()
    {
    //#ifndef ONLINE_JUDGE
      //  freopen("in.txt","r",stdin);
    //#endif
    
        long long high,low,mid,res;
        double a;
        while(cin>>n>>m){
            high = 0;
            low = 0;
            for(int i = 0;i < n;i++){
                cin>>a;
                input[i] = (a+1e-8)*10000;
                high = high > input[i]?high : input[i];
            }
            sort(input,input+n,cmp);
            res = 0;
            low = 10000/100;
            while(low <= high){
                mid = (low+high)/2;
                if(judge(mid)){
                    res = mid;
                    low = mid+1;
                }
                else
                    high = mid-1;
            }
            int th = res/10000;
            int hu = (res - th * 10000)/1000;
            int te = (res - th * 10000 - hu * 1000)/100;
          printf("%d.%d%d
    ",th,hu,te);
    
        }
    }
    


     

  • 相关阅读:
    每天一道Java题[4]
    每天一道Java题[3]
    每天一道Java题[2]
    关于OOCSS架构
    新blog开张!
    [原]C++拾遗
    mark
    今天的情况(也是10月份的总结)
    11月份的总结
    Linux管道编程实例
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4018471.html
Copyright © 2011-2022 走看看