#P1466. 2024.10.9-秋招-第3题-磁盘的写入策略

2024.10.9-秋招-第3题-磁盘的写入策略

题目内容

存储软件负责编程按照某写入策略,每次可向单块磁盘写入4KB4KB数据,每写入nn次可随机分配一次写入策略,存储软件的写入策略分为33种:

策略一: 轮循写入:比如存在33块硬盘001122

n=2n=2,采用该策略写入数据时,写入顺序为00->11

n=5n=5,采用该策略写入数据时,写入顺序为00->11->22->00->11

策略二: 优先写入剩余空间高的磁盘(剩余空间相同时,先写入序号小的硬盘),比如存在33块硬盘001122,空间容量分别为12KB12KB16KB16KB24KB24KB

n=2n=2,采用该策略写入数据时,写入顺序为22->22

n=5n=5,采用该策略写入数据时,写入顺序为22->22->11->22->00

策略三: 按比例轮循写入:比如存在33块硬盘001122,写入比例为1:2:31:2:3

n=3n=3,采用该策略写入数据时,数据写入顺序为00->11->11

n=6n=6,采用该策略写入数据时,数据写入顺序为00->11->11->22->22->22

切换写入策略时,可切换不同的策略也可以和上次策略保持一致,切换策略后不继承上次写入策略的执行结果,如:33块硬盘001122,写入比例为1:1:21:1:2,待写入的数据量有24KB24KB

n=2n=2,一直通过策略11写入数据,写入顺序为(策略1100->11->(策略1100->11->(策略1100->11

n=2n=2,一直通过策略33写入数据,写入顺序为(策略3300->11->(策略3300->11->(策略3300->11

n=5n=5,一直通过策略11写入数据,写入顺序为(策略1100->11->22->00->11->(策略1100

n=5n=5,一直通过策略33写入数据,写入顺序为(策略3300->11->22->22->00->(策略3300

现在有一批数据要写入初始状态为空的硬盘,存在几种写入策略分配使最后硬盘空间的占用率(硬盘空间的占用率=硬盘写入的数据量/硬盘的总容量)保持均衡。

注:

1.如果不存在合适的写入策略分配使最后硬盘空间的占用率保持均衡,则返回00

2.如果存在合适的写入策略,最终的磁盘空间占用率一定是整除的结果,精度>0.000001>0.000001

输入描述

磁盘的个数[1,200][1,200]

每个磁盘的容量(单位KBKB,空间是44的倍数)[1,10000][1,10000]

磁盘的写入比例[1,1000][1,1000]

待写入的总数据量(单位KBKB,总数据量是44的倍数)[1,1000][1,1000]

nn次切换一次写入策略[1,1000][1,1000]

输出描述

存在几种写入策略分配

样例1

输入

3
64 64 64
1 1 1
12
3

输出

3

说明

总共有33块硬盘,每块硬盘有64KB64KB容量,三块硬盘的写入权重比为1:1:11:1:1,待写入12KB12KB数据,每33次切换一次写入策略,共存在3种写入策略分配使最后的硬盘空间的占用率保持平衡。

方式1:策略1

方式2:策略2

方式3:策略3

采用3种方式均能保持写入后3块硬盘的空间占用率保持一致,均为4/64=0.06254/64=0.0625

样例2

输入

3
128 64 32
1 1 1
4
3

输出

0

说明

总共有33块硬盘,每块硬盘分别有128KB64KB32KB128KB、64KB、32KB容量,三块硬盘的写入比例比为1:1:11:1:1,待写入4KB4KB数据,每33次切换一次写入策略,不存在写入策略分配使最后硬盘空间的占用率保持均衡,因此返回00

样例3

输入

3
128 128 128
1 1 1
24
3

输出

9

说明

总共有33块硬盘,每块硬盘有128KB128KB容量,三块硬盘的写入权重比为1:1:11:1:1,待写入24KB24KB数据,每33次切换一次写入策略,共存在99种写入策略分配使最后的硬盘空间的占用率保持均衡。

方式11:策略11->策略11

方式22:策略11->策略22

方式33:策略11->策略33

方式44:策略22->策略11

方式55:策略22->策略22

方式66:策略22->策略33

方式77:策略33->策略11

方式88:策略33->策略22

方式99: 策略33->策略33

采用99种方式均能保持写入后33块硬盘的空间占用率保持一致,均为8/128=0.06258/128=0.0625