AlgoMooc
← 返回题库

X4064. 小慕的存储策略优化

困难通过率 71% · 提交 7 · 通过 5
模拟贪心构造枚举

小慕正在开发一款存储系统,该系统需要按照特定的写入策略向磁盘写入数据。每次可以向单块磁盘写入`4KB`数据,并且每写入`n`次,就可以重新选择写入策略。存储系统支持三种不同的写入策略: 策略一:轮循写入 磁盘按照编号依次写入。例如: 设有`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=5`,始终使用策略`3`,写入顺序可能是: `(策略3) 0 -> 1 -> 2 -> 2 -> 0` `(策略3) 0 -> 1 -> 2 -> 2 -> 0` 小慕的任务是找出几种写入策略分配方案,使得最终所有磁盘的(占用率 = 写入数据量 / 总容量)能够保持均衡。 注意: 如果不存在合适的写入策略使磁盘占用率均衡,则返回`0`。 若存在合适的策略,则最终的磁盘空间占用率一定是整除结果,精度需满足 `>0.000001`。

提示:带虚线的词点一下有通俗解释。

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解(训练营专属)

登录后查看题目图解

题目图解为训练营学员专属内容,请先登录。

微信扫码登录还不是训练营学员?了解训练营 →
写完代码点「提交」,将对全部测试用例判题。