本题数据范围有误导性!本题在笔试过程中使用dfs回溯法就能过所有数据,所以官方后台数据应该都是在很小的范围内。
存储软件负责编程按照某写入策略,每次可向单块磁盘写入4KB数据,每写入n次可随机分配一次写入策略,存储软件的写入策略分为3种:
策略一: 轮循写入:比如存在3块硬盘0、1、2,
在这道题中,给定若干磁盘,每个磁盘具有一定的容量,数据需要按照三种可能的写入策略(轮循写入、优先剩余空间写入、按比例轮循写入)写入到磁盘中。题目要求根据输入的写入策略切换频率、写入数据量和写入比例,判断有多少种写入策略可以使得所有磁盘的空间占用率保持均衡。如果有多种策略满足条件,则输出这些策略的数量;如果没有满足条件的策略,则返回0。
dfs+模拟,对于目前的这次选择什么策略,考虑dfs去遍历每一种策略,第一种策略也就是按轮循写入(1 2 3 1 2 3....),第二组是每一次都选择目前剩余容量高的,第三种则是按比例,看最后看硬盘空间的占用率是不是保持均衡即可
题目要求我们模拟写入数据到多块硬盘的过程,并且需要保证写入后的硬盘占用率尽量保持均衡。为了实现这一点,我们可以通过深度优先搜索(DFS)遍历不同的写入策略组合,找到所有可能使占用率均衡的方案。题目中给出的三种写入策略分别为: