【发布时间】:2019-09-20 13:23:16
【问题描述】:
我正在努力解决这个问题。我尝试通过简单的递归来解决它,但是大型案例所花费的时间很长,我想通过编写动态编程算法来改进它。
有n 给定学生和n 给定任务。每个学生都由0s 和1s 中的1d array of length n 代表。 A[i] == 0 表示该学生无法完成i'th 任务,A[i] == 1 表示该学生可以完成i'th 任务。目标是确定有多少种不同的方式以某种方式将任务分配给学生,所有任务都可以完成,单个学生只能完成一项任务。
我将不胜感激有关如何以动态编程方式解决此问题的任何提示。
【问题讨论】:
-
示例输入输出以获得更清晰的解释?
-
输入的界限是什么?
-
如果您提供递归解决方案,我相信将其转移到 DP 解决方案会很简单。
标签: algorithm dynamic-programming