【发布时间】:2018-03-08 09:16:09
【问题描述】:
我有一个l = [[1,2,3],[3,4,6],...] 形式的列表。有m 子列表,每个子列表代表一个玩家。每个玩家可以执行多项任务(有n 任务)。我想通过最小化玩家之间的切换次数来找到通过所有步骤的最短路径。所以基本上让同一个玩家尽可能频繁地连续执行任务。我正在尝试编写一个算法来优化它在 多项式时间 中运行,但我在想出一个好的方案时遇到了一些麻烦。我在想它可能像Dijkstra's algorithm,但我不确定如何调整它以适应我的情况。下面是我想要的具体示例。
示例
n = 5 和 m = 3 这样我们就有一个列表 l = [[1,2,5],[1,3,5],[2,3,4]]
算法将返回 [0,2,2,2,0]
即玩家 0 将首先被选中,然后切换到玩家 2 完成 3 个任务,而不是回到玩家 0 完成最后一个任务。
我只是在寻找伪代码或朝着正确的方向推进。真正的挣扎和蛮力对于大量的人来说是行不通的!
【问题讨论】:
-
我投票结束这个问题,因为它似乎更适合cs.stackexchange.com
-
你从哪里得到这个问题?任何约束,即:
n、m、l的最大值? -
@PhamTrung 这是我遇到的编码问题的抽象。没有最大值,它们可以变得很大。
-
你能在这里分享你的蛮力方法吗?
标签: algorithm time-complexity dijkstra