#P1466. 2024.10.9-秋招-第3题-磁盘的写入策略
-
ID: 134
Type: Default
1000ms
256MiB
Tried: 210
Accepted: 25
Difficulty: 9
Uploaded By:
TaZi
Tags>DFS
2024.10.9-秋招-第3题-磁盘的写入策略
题目内容
存储软件负责编程按照某写入策略,每次可向单块磁盘写入4KB数据,每写入n次可随机分配一次写入策略,存储软件的写入策略分为3种:
策略一: 轮循写入:比如存在3块硬盘0、1、2,
当n=2,采用该策略写入数据时,写入顺序为0->1;
当n=5,采用该策略写入数据时,写入顺序为0->1->2->0->1。
策略二: 优先写入剩余空间高的磁盘(剩余空间相同时,先写入序号小的硬盘),比如存在3块硬盘0、1、2,空间容量分别为12KB、16KB、24KB,
当n=2,采用该策略写入数据时,写入顺序为2->2,
当n=5,采用该策略写入数据时,写入顺序为2->2->1->2->0。
策略三: 按比例轮循写入:比如存在3块硬盘0、1、2,写入比例为1:2:3
当n=3,采用该策略写入数据时,数据写入顺序为0->1->1;
当n=6,采用该策略写入数据时,数据写入顺序为0->1->1->2->2->2。
切换写入策略时,可切换不同的策略也可以和上次策略保持一致,切换策略后不继承上次写入策略的执行结果,如:3块硬盘0、1、2,写入比例为1:1:2,待写入的数据量有24KB,
当n=2,一直通过策略1写入数据,写入顺序为(策略1)0->1->(策略1)0->1->(策略1)0->1;
当n=2,一直通过策略3写入数据,写入顺序为(策略3)0->1->(策略3)0->1->(策略3)0->1;
当n=5,一直通过策略1写入数据,写入顺序为(策略1)0->1->2->0->1->(策略1)0;
当n=5,一直通过策略3写入数据,写入顺序为(策略3)0->1->2->2->0->(策略3)0。
现在有一批数据要写入初始状态为空的硬盘,存在几种写入策略分配使最后硬盘空间的占用率(硬盘空间的占用率=硬盘写入的数据量/硬盘的总容量)保持均衡。
注:
1.如果不存在合适的写入策略分配使最后硬盘空间的占用率保持均衡,则返回0;
2.如果存在合适的写入策略,最终的磁盘空间占用率一定是整除的结果,精度>0.000001。
输入描述
磁盘的个数[1,200]
每个磁盘的容量(单位KB,空间是4的倍数)[1,10000]
磁盘的写入比例[1,1000]
待写入的总数据量(单位KB,总数据量是4的倍数)[1,1000]
每n次切换一次写入策略[1,1000]
输出描述
存在几种写入策略分配
样例1
输入
3
64 64 64
1 1 1
12
3
输出
3
说明
总共有3块硬盘,每块硬盘有64KB容量,三块硬盘的写入权重比为1:1:1,待写入12KB数据,每3次切换一次写入策略,共存在3种写入策略分配使最后的硬盘空间的占用率保持平衡。
方式1:策略1
方式2:策略2
方式3:策略3
采用3种方式均能保持写入后3块硬盘的空间占用率保持一致,均为4/64=0.0625
样例2
输入
3
128 64 32
1 1 1
4
3
输出
0
说明
总共有3块硬盘,每块硬盘分别有128KB、64KB、32KB容量,三块硬盘的写入比例比为1:1:1,待写入4KB数据,每3次切换一次写入策略,不存在写入策略分配使最后硬盘空间的占用率保持均衡,因此返回0。
样例3
输入
3
128 128 128
1 1 1
24
3
输出
9
说明
总共有3块硬盘,每块硬盘有128KB容量,三块硬盘的写入权重比为1:1:1,待写入24KB数据,每3次切换一次写入策略,共存在9种写入策略分配使最后的硬盘空间的占用率保持均衡。
方式1:策略1->策略1
方式2:策略1->策略2
方式3:策略1->策略3
方式4:策略2->策略1
方式5:策略2->策略2
方式6:策略2->策略3
方式7:策略3->策略1
方式8:策略3->策略2
方式9: 策略3->策略3
采用9种方式均能保持写入后3块硬盘的空间占用率保持一致,均为8/128=0.0625。
通知
扫码备注华为交流群~期待您的到来
- 湘ICP备2023007293号
- Worker 0, 81ms
- Powered by Hydro v4.14.1 Community