#P1472. 2024.9.25-秋招(留学生)-第3题-磁盘的写入策略
-
ID: 128
Type: Default
1000ms
256MiB
Tried: 59
Accepted: 10
Difficulty: 8
Uploaded By:
TaZi
Tags>DFS
2024.9.25-秋招(留学生)-第3题-磁盘的写入策略
塔子哥的提醒:
本题数据范围有误导性!本题在笔试过程中使用dfs回溯法就能过所有数据,所以官方后台数据应该都是在很小的范围内。
题目内容
存储软件负责编程按照某写入策略,每次可向单块磁盘写入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,
当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。
3.不管是否写入成功,都算一次。例如:
策略是轮循写入,n = 3 , 磁盘是0 , 1 , 2 . 但是1,2都满了。程序还是0,1,2的写,失败了也算数。而不是0.跳过1,2,写0,再跳过1,2,再写0!
输入描述
磁盘的个数[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,待写入12KB数据,每3次切换一次写入策略,共
略分配使最后的硬盘空间的占用率保持平衡。
方式1:策略1
方式2:策略2
方式3:策略3
采用3种方式均能保持写入后3块硬盘的空间占用率保
4/64=0.0625
样例2
输入
3
128 64 32
4 2 1
56
7
输出
1
说明
通知
扫码备注华为交流群~期待您的到来
- 湘ICP备2023007293号
- Worker 0, 24ms
- Powered by Hydro v4.14.1 Community