翻译
查看原帖
翻译
285414
Swiftie_wyc22楼主2021/2/20 14:12

本蒟蒻前来翻译

文字版题目:http://acm.hdu.edu.cn/showproblem.php?pid=3233

杭州电子科技大学网站

问题描述

jiajia的下载量很多,甚至超出您的想象。有人说他开始一起下载多达20,000个文件。如果20,000个文件尝试共享有限的带宽,那么将是一个很大的危险,并且没有文件会被正确下载。因此,他使用了下载管理器。

如果要下载T个文件,则下载管理器在下载文件时会使用以下策略:

1.下载管理器为较小的文件提供更高的优先级,因此它在启动时开始下载最小的n个文件。如果存在平局,下载管理器会选择一个剩余字节数少的(供下载)。我们假设至少有50兆字节/秒的带宽,可以同时下载n个文件而没有任何问题。

2.可用带宽由正在下载的所有文件平均共享。完全下载文件后,其带宽即刻分配给下一个文件。如果除了正在下载的文件之外没有其他文件,则此带宽将立即由所有剩余的正在下载的文件平均共享。

给定每个文件的大小和完成百分比,您的任务是智能地模拟下载管理器的行为,以找到下载所有文件所需的总时间。

输入

最多将有10个测试用例。每种情况都以三个整数T(1 <= T <= 20000),n(1 <= n <= 2000和1 <= n <= T)和B(50 <= B <= 1000)开头。这里B表示可用于jiajia的总带宽(以兆字节/秒为单位)。请注意,下载管理器始终并行下载n个文件,除非可供下载的文件少于n个。接下来的T行中的每行包含一个非负浮点数S(小于20,000,最多包含小数点后两位)和一个整数P(0 <= P <= 100)。这两个数字表示一个文件,大小为S兆字节,并且已经完全下载了P%。还要注意,尽管从理论上讲,文件大小或其剩余部分的大小在以字节表示时是不可能的,但为简单起见,请假定在此问题中这种情况是可能的。最后一个测试用例后跟T = n = B = 0,不应对其进行处理。

输出

对于每种情况,打印情况编号和下载所有文件所需的总时间,以小时为单位,四舍五入到小数点后两位。在每个测试用例的输出之后打印空白行。

样本输入

6 3 90 100.00 90 40.40 70 60.30 70 40.40 80 40.40 85 40.40 88 1 1 56 12.34 100 0 0 0

样本输出

Case 1:0.66

Case 2:0.00

暗示

解释

在第一个示例中,有6个文件,下载管理器可以同时下载3个文件。最小文件大小为40.40 MB,但是有 四个这样的文件(第二,第四,第五和第六文件)。因此,下载管理器选择第六,第五和第四文件进行下载,因为它们剩余的字节数更少。所有这些 文件获得相等的带宽(30.00 MB /秒)。在这三个文件中,第8个文件首先完成。因此,第二个文件立即开始下载。然后,第5个档案 完成。因此,下一个较大的文件(第3个文件)开始下载。一直进行到下载完所有文件为止。

2021/2/20 14:12
加载中...