zoukankan      html  css  js  c++  java
  • 网线切割

    第二题。

    原题链接:https://www.luogu.org/problem/show?pid=1297#sub

    果然牵扯到浮点数题目就开始变得比较恶心人了啊。。

    思路是有一步转化,先把米转换成厘米,转化成整数进行二分然后再转回来,这样好做一些。

    和切木头那个题很像,也是要记录一个cnt,判断这个值和k的关系。

    有一些细节部分需要好好处理。

    参考代码:

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <algorithm>
     4 #define maxn 10005
     5 #define maxl 1000000005
     6 using namespace std;
     7 int k,n,cnt;
     8 int a[maxn];
     9 double b,ans;
    10 inline int read(){
    11     int num = 0;
    12     char c;
    13     bool flag = false;
    14     while ((c = getchar()) == ' ' || c == '
    ' || c == '
    ');
    15     if (c == '-')
    16         flag = true;
    17     else
    18         num = c - '0';
    19     while (isdigit(c = getchar()))
    20         num = num * 10 + c - '0';
    21     return (flag ? -1 : 1) * num;
    22 }
    23 bool check(int x){
    24     cnt=0;
    25     for (int i=1;i<=n;i++)
    26       cnt+=a[i]/x;
    27     if (cnt>=k) 
    28         return true;
    29     else 
    30         return false;
    31 }
    32 int main(){
    33     n = read();k = read();
    34     for (int i=1;i<=n;i++){
    35       scanf("%lf",&b);
    36       a[i] = b * 100;
    37     }
    38     int l = 0;
    39     int r = maxl;
    40     int mid;
    41     while (l <= r){
    42         mid=(l + r + 1) / 2;
    43         if (l == r) 
    44           break;
    45         if (check(mid))
    46             l = mid;
    47         else 
    48             r = mid - 1;
    49     }
    50     ans = mid * 1.00 / 100;
    51     printf("%.2lf",ans);
    52     return 0;
    53 }
  • 相关阅读:
    webpack的基本使用2
    js调用本地exe程序,并获取exe运行结果
    BLE技术简介(转)
    在线编解码转换工具
    json字符转数组
    PPT图标
    在线IP地址与数字互转工具
    C# Combobox
    C# 设置本机日期格式
    sql server删除字段约束
  • 原文地址:https://www.cnblogs.com/OIerShawnZhou/p/7706752.html
Copyright © 2011-2022 走看看