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
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    springboot 集成jsp
    eclipse 创建 springboot项目
    eclipse 导入别人拷贝过来的工作空间项目
    vue安装及使用
    eclipse配置svn导出项目
    sql为什么用0,1表示男女?在sql语句里转好还是在页面转好?
    svn下载多模块及依赖框架的项目
    django连接sqlserver
    字符编码
    数组希尔排序法
  • 原文地址:https://www.cnblogs.com/FreeAquar/p/2097788.html
Copyright © 2011-2022 走看看