列表

详情


NC15890. 配环境

描述

    黑猫在给校赛配环境,结果被服务器的各种入站规则出站规则搞得头疼,想到自己要上传GVIMEMACSVSCODEJetbrain全家桶、Visual StudioGeditMicrosoft Office WordEclipse等等,完全不知道要要花费多少时间才能上传完校赛需要的环境。

    黑猫跑去问ddjing,谁知道ddjing说:“我要去实习了,没功夫解决这个问题,你去问问其他人吧。“

    于是黑猫想请你帮他解决这个问题。

    服务器总传输速度为每秒M个单位(本题出现的所有单位都统一),黑猫现在需要上传总共n个软件(按优先级顺序从高到低给出),每个软件的大小分别为v1v2….vn,每个软件为保持稳定连接,上传需要一个最小的传输速度为m1m2…mn

    服务器带宽分配的策略是:按优先级满足每一个软件要求的传输速度。如果服务器剩余的带宽不能满足某个软件最小传输速度的话,服务器将继续寻找下去,直到找到能满足最小传输速度的软件。

    如果目前服务器的总传输速度不能满足所有还需要上传的软件的话,服务器将把传输速度全部给予当前优先级最高的(即使不能满足其最小传输速度)。

    如果目前对所有软件都满足了其最小传输速度的话,服务器将把剩余所有传输速度全部给予当前优先级最高的软件。

    黑猫想把这些开始上传以后就去陪妹子玩了,所以他想知道需要多久才能把所有东西都上传完毕,好及时赶回机房摸鱼。

输入描述

第一行给出一个正整数,表示服务器总带宽M
第二行给出整数n,表示需要上传的n个软件。
第三行为n个正整数,第i个数表示vi。
第四行为n个正整数,第i个数表示mi。
( 1 <= M <= 1000, 1 <= n <= 100 , 1 <= vi <= 1000 , 1 <= mi <= 1000 )

输出描述

输出一行,为上传完毕所有软件所需要的时间,保留两位小数。

示例1

输入:

10
6
1 1 4 5 1 4 
10 9 8 7 6 5

输出:

1.60

示例2

输入:

10
6
10 9 8 7 6 5
1 1 4 5 1 4

输出:

4.50

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C 解法, 执行用时: 2ms, 内存消耗: 412K, 提交时间: 2023-01-10 15:11:03

#include<stdio.h>
int main()
{
    int m,n,i,s=0,a;
    scanf("%d %d",&m,&n);
    for(i=1;i<=n;i++)
    {
        scanf("%d",&a);
        s+=a;
    }
    printf("%.2f",s/1.0/m+1e-4);
    return 0;
}

C++11(clang++ 3.9) 解法, 执行用时: 10ms, 内存消耗: 620K, 提交时间: 2018-05-22 12:42:20

#include<cstdio>
int main(){
int n,M,v;
double sum=0;
scanf("%d%d",&M,&n);
while(n--)scanf("%d",&v),sum+=v;
printf("%.2lf",sum/M);}

Python3(3.5.2) 解法, 执行用时: 28ms, 内存消耗: 3560K, 提交时间: 2018-05-18 20:07:29

m=int(input())
n=int(input())
l=map(int,input().split())
input()
print("{:.2f}".format(sum(l)/m))

pypy3 解法, 执行用时: 83ms, 内存消耗: 49436K, 提交时间: 2022-08-26 10:52:31

M=int(input())
n=int(input())
a=map(int,input().split())
input()
print("%.2f"%(sum(a)/M))

上一题