P1297 网线切割

题目描述

Wonderland居民决定举行一届地区性程序设计大赛。仲裁委员会志愿负责这次赛事并且保证会组织一次有史以来最公正的比赛。为此,所有参赛者的电脑和网络中心会以星状网络连接,也就是说,对每个参赛者,组委会会用一根长度一定的网线将他的计算机与中心连接,使得他们到网络中心的距离相等。

为了买网线,组委会与当地的网络公司联系,要向他们购买一定数目的等长网线,这些网线要尽可能的长,使得组织者可以让选手们彼此远离。

于是公司指派管理网线事务的负责人解决此事。负责人清楚地知道仓库里每根网线的长度(精确到厘米:cm),他也可以将他们以厘米的精度切割——前提是他得知道切成多长。但是现在,这个长度他算不出来,于是他彻底迷茫了。

你要做的,就是帮助困惑的负责人。编一个程序求出为了得到一定数目的等长网线,每根网线最大的可能长度。

输入输出格式

输入格式:

输入文件的第一行由两个整数N和K组成,由一个空格间隔。N(1≤N≤10000)是仓库里光缆的数目,K(1≤K≤10000)是需要的网线数目。

接下来的N行每行只有一个实数,告诉你每根缆线的长度(单位:m)。这些网线至少长1m,最多不超过100km。

所有的长度精确到cm,且小数点后有且仅有两位。

输出格式:

把你求得的最大网线长度写进输出文件(单位:m)。长度要精确到cm,并且输出时小数点后要恰有两位。

如果无论如何也不可能切割出需要数目的网线(每根至少1cm长),那么就输出“0.00”(不包括引号)。

输入输出样例

输入样例#1:

4 11
8.02
7.43
4.57
5.39

输出样例#1:

2.00二分答案。不解释
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
#include<queue>
#include<math.h>
using namespace std;
int n,k;
long long a[21900];
long long  l,r,mid;
double ans;
long long check(long long x)
{
    long long sum=0;
    for(int i=1;i<=n;i++)
        sum+=a[i]/x;
    return sum;
}
int main()
{
    scanf("%d%d",&n,&k);
    double t;
    for(int i=1;i<=n;i++)
    {
        scanf("%lf",&t);t*=100;
        a[i]=(long long )t;
    }
    l=0;r=9999999899;
    while(l<=r)
    {
        mid=(l+r+1)>>1;
        if (l==r) break;
        if(check(mid)>=k)
            l=mid;
        else r=mid-1;        

    }
    ans=mid*1.00/100;
    printf("%.2lf",ans);
    return 0;
}
时间: 2024-10-08 10:31:41

P1297 网线切割的相关文章

Openjudge 网线管理

这篇主要是讲讲细节 总时间限制: 1000ms 内存限制: 65536kB 描述 仙境的居民们决定举办一场程序设计区域赛.裁判委员会完全由自愿组成,他们承诺要组织一次史上最公正的比赛.他们决定将选手的电脑用星 形拓扑结构连接在一起,即将它们全部连到一个单一的中心服务器.为了组织这个完全公正的比赛,裁判委员会主席提出要将所有选手的电脑等距离地围绕在服务器 周围放置. 为购买网线,裁判委员会联系了当地的一个网络解决方案提供商,要求能够提供一定数量的等长网线.裁判委员会希望网线越长越好,这样选手们之间

noi 04:网线主管

04:网线主管 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 仙境的居民们决定举办一场程序设计区域赛.裁判委员会完全由自愿组成,他们承诺要组织一次史上最公正的比赛.他们决定将选手的电脑用星形拓扑结构连接在一起,即将它们全部连到一个单一的中心服务器.为了组织这个完全公正的比赛,裁判委员会主席提出要将所有选手的电脑等距离地围绕在服务器周围放置. 为购买网线,裁判委员会联系了当地的一个网络解决方案提供商,要求能够提供一定数量的等长网线.裁判委员会希望网线越长

网线主管

二分查找的题目 题目链接:http://noi.openjudge.cn/ch0111/04/ 总时间限制: 1000ms     内存限制: 65536kB 描述 仙境的居民们决定举办一场程序设计区域赛.裁判委员会完全由自愿组成,他们承诺要组织一次史上最公正的比赛.他们决定将选手的电脑用星形拓扑结构连接在一起,即将它们全部连到一个单一的中心服务器.为了组织这个完全公正的比赛,裁判委员会主席提出要将所有选手的电脑等距离地围绕在服务器周围放置. 为购买网线,裁判委员会联系了当地的一个网络解决方案提

mysql_slow_log快速切割脚本

最近会比较多的分析mysql的慢日志,应为在mysql的慢日志中没有使用logrotate所以每次要要查看某一天到现在的慢查询日志都要使用正则工具切割,但是每次重新写就有一点麻烦,所以就用脚本写了下输入时间参数就可以切割日志的简易工具,脚本如下: #!/bin/bash #slow_log_cutting.sh version1.0 chmod 700 #use fast cutting mysql_slow_log #writer jim #history #2016.12.05 #慢日志文件

LNMP - Nginx日志切割

随着访问量的增大,如果对日志置之不理,总有一天日志文件会撑爆磁盘:所以需要我们对日志进行切割,并且每隔一段时间删除一些旧日志,防止日志无休无止的占用磁盘的空间. 可以通过写一个shell脚本自动化切割,比如每天凌晨00:00把昨天的日志进行归类重命名: # cd /usr/local/sbin # vim nginx_logrotate.sh 写入以下脚本: #! /bin/bash d=`date -d "-1 day" +%F` [ -d /tmp/nginx_log ] || m

Apache配置域名跳转、日志切割、静态缓存、防盗链、访问控制

·/usr/local/apache2/bin/apachectl  -M:查看安装了哪些模块 ·/usr/local/apache/bin/apachectl   -V:查看使用的模式 ·/usr/local/apache2/bin/apachectl  -t:检查语法错误 ·/usr/local/apache2/bin/apachectl  -l:查看安装的库文件 ·/usr/local/apache2/bin/apachectl graceful:重新加载配置 ·/usr/local/ap

2.0-apache日志切割

apache在提供服务后,在/usr/local/apache2/logs下会默认产生访问日志和错误日志access_log和error_log 尤其是访问日志,在用户访问多的情况下,会产生很多条记录.随着时间增长,可能会变成几个G或十几个G. 为了缓解这种情况,按天来切割日志,删除以前没用的日志,就成了很好的解决方法. 首先来看系统默认产生的访问日志格式: vim /usr/local/apache2/conf/httpd.conf <IfModule log_config_module>

Nginx日志切割并计划任务自动上传到FTP服务器

枫城浪子原创,转载请标明出处! 微信bh19890922 QQ445718526,490425557 更多技术博文请见个人博客: https://fengchenglangzi.000webhostapp.com http://fengchenglangzi.blog.51cto.com 一.简述 Nginx WEB服务器每天会产生大量的访问日志,而且不会自动地进行切割,如果持续天数访问,将会导致该access.log日志文件容量非常大,不便于SA查看相关的网站异常日志,并且后期进行分割非常不易

继承派生产生的切割问题

1 #include <iostream> 2 #include <string> 3 using namespace std; 4 class people 5 { 6 public: 7 string name; 8 int age; 9 virtual void print(); 10 }; 11 12 class teacher:public people 13 { 14 public: 15 int wage; 16 virtual void print(); 17 18