• 切绳子


    题目描述

    有N条绳子,它们的长度分别为Li。如果从它们中切割出K条长度相同的绳子,这K条绳子每条最长能有多长?答案保留到小数点后2位(直接舍掉2为后的小数)。

    输入输出格式

    输入格式:

    一行两个整数N和K,接下来N行,描述了每条绳子的长度Li。

    输出格式:

    切割后每条绳子的最大长度。

    输入输出样例

    输入样例#1: 
    4 11
    8.02
    7.43
    4.57
    5.39
    输出样例#1: 
    2.00

    说明

    对于100%的数据 0<Li<=100000.00 0<n<=10000 0<k<=10000

    分析:

    本题同样是一道二分答案题目,ok函数也较为好写,只需要做除法进行叠加,最后判断即可

    CODE:

     1 #include <cstdio>
     2 #include <cstring>
     3 #include <cmath>
     4 #include <algorithm>
     5 #include <iostream>
     6 using namespace std;
     7 double a[100005];
     8 int n,k;
     9 int ok(int x){
    10     int ans=0;
    11     for (int i=1;i<=n;i++) ans+=(int)(a[i]/x);
    12     return ans>=k;
    13 }
    14 int main(){
    15     //freopen("cable.in","r",stdin);
    16     //freopen("cable.out","w",stdout);
    17     scanf("%d%d",&n,&k);
    18     for (int i=1;i<=n;i++) scanf("%lf",&a[i]),a[i]*=100;
    19     int l=1,r=10000000;
    20     while (l<=r){
    21         int mid=(l+r)/2;
    22         if (ok(mid)) l=mid+1;
    23         else r=mid-1;
    24     }
    25     printf("%.2lf",r*0.01);
    26     return 0;
    27 }
  • 相关阅读:
    Java 实现常见内排序
    markdown基本语法
    HashMap (JDK1.8) 分析
    jQuery总结
    JS 数组 常用方法
    CSS样式 解决文字过长显示省略号问题
    Python中的 __name__属性的含义和作用
    http协议详细介绍
    Http和Https的区别
    爬虫——requests库使用方法
  • 原文地址:https://www.cnblogs.com/kanchuang/p/11188163.html
Copyright © 2020-2023  润新知