Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 查找创建特定序列所需的最小对象数_Algorithm_Dynamic Programming_Greedy - Fatal编程技术网

Algorithm 查找创建特定序列所需的最小对象数

Algorithm 查找创建特定序列所需的最小对象数,algorithm,dynamic-programming,greedy,Algorithm,Dynamic Programming,Greedy,您有N个字段(1不是最佳解决方案,而是使用动态规划解决时间复杂度问题的解决方案O(B*MAX(已记录体积)+N) 这是一个两步解决方案。 在步骤1中,找到从1到最大(录制的音量)产生特定音量所需的最小音乐播放器(可能有些音量不可用) 然后在步骤2中,从第一个字段到最后一个字段,计算每个字段上需要产生的音量,然后使用步骤1中的结果了解该字段中需要多少音乐播放器 以您的输入/输出为例。 在步骤1中,您可以得到player_required[5]=1、player_required[7]=1、play

您有N个字段(1不是最佳解决方案,而是使用动态规划解决时间复杂度问题的解决方案
O(B*MAX(已记录体积)+N)

这是一个两步解决方案。 在步骤1中,找到从1到最大(录制的音量)产生特定音量所需的最小音乐播放器(可能有些音量不可用)

然后在步骤2中,从第一个字段到最后一个字段,计算每个字段上需要产生的音量,然后使用步骤1中的结果了解该字段中需要多少音乐播放器

以您的输入/输出为例。 在步骤1中,您可以得到player_required[5]=1、player_required[7]=1、player_required[10]=2、player_required[12]=2、player_required[14]=2、player_required[15]=3、player_required[17]=3、player_required[19]=3,…意味着需要一名玩家来制作5卷或7卷,但如果要制作15卷或17卷,则需要3名玩家

在步骤2中,首先转到字段1,音量为0,不需要任何播放机。在字段2中,音量为17,因此此字段中需要3名播放机。在字段3中,来自字段2的音量为16(17-1)它与字段3中的体积相匹配。因此,字段3中不需要玩家。然后在字段4中,字段3中的体积是15,但字段4中的体积是20。因此,您知道在字段4中应该产生5的体积。根据步骤1中的计算,您需要1个玩家。字段5中不需要任何玩家。总之,您需要4音乐播放器(第2区3个,第4区1个)

如果无法在步骤2中的任何字段中生成所需的音量,则应输出-1,因为没有与输入一致的音乐播放器配置

很抱歉英语不好,希望能有所帮助。

这似乎与Mancala[游戏]的移动生成器和评估器类似(但不是完全同构)。