zoukankan      html  css  js  c++  java
  • poj 1064 Cable master

    题意:给出一些长度的网线N,求等长最大的长度M

    思路:很好形成,很明显的二分,然而让人特无语的是double,被精度整了好几次后现在看到都挺虚的

    直接计算肯定要用到eps,想了想,用字符串转换,还是wa了N次之后,看discuss,还是没过,最后看了!的博客,终于改过了,写了好久--|||

    code:

    #include <iostream>
    #include <cstdio>
    #include <climits>
    #include <cstring>
    #include <cstdlib>
    #include <string>
    #define nMAX 10002
    using namespace std;
    int len[nMAX];
    int Max=0, m, n, cnt;
    bool Check(int l);
    int Dichotomy()
    {
    int low=1, mid, high=Max;
    while(low<high)
    {
    if(low==high-1)
    {
    if(!Check(high)) high=low;
    break;
    }
    mid=(low+high)>>1;
    if(Check(mid)) low=mid;
    else high=mid-1;
    }
    if(!Check(low)) return low;
    else return high;
    }
    bool Check(int l)
    {
    cnt=0;
    for(int i=0; i<n; i++)
    {
    cnt+=len[i]/l;
    if(cnt>=m) return 1;
    }
    return 0;
    }

    int main()
    {
    scanf("%d%d", &n, &m);
    memset(len, 0, sizeof(len));
    for(int i=0; i<n; i++)
    {
    char an[100];
    scanf("%s", an);
    int lengh=strlen(an);
    for(int j=0; j<lengh; j++)
    {
    if(an[j]=='.') continue;
    len[i]=len[i]*10+an[j]-'0';
    }
    if(Max<len[i]) Max=len[i];
    }
    if(!Check(1)) printf("0.00\n");
    else
    printf("%.2f", 1.0*Dichotomy()/100);
    return 0;
    }
    作者:FreeAquar
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    iOS 8 UIAlertController 和 UIAlertAction
    iOS 利用异常 NSException 调试代码
    iOS 开发 atomic 与 nonatomic 区别
    iOS 9 HTTPS 的配置
    关于Frame加背景的那点事?
    java thread 线程锁同步,锁,通信
    java反射机制
    Java序列化与反序列化
    Java内存分配以及GC
    JavaBean入门笔记
  • 原文地址:https://www.cnblogs.com/FreeAquar/p/2097788.html
Copyright © 2011-2022 走看看