问题描述:
有n个任务需要分配给n个人执行,每个任务只能分配给一个人,每个人只能执行一个任务,第i个人执行第j个任务的成本是c【i】【j】。求出总成本最小的一种方案。
求解:
任务的选择依旧可以表示成一棵n叉树,每次父节点向孩子结点的延申,就是当前i号人员选择第j个任务。

设计递归,当i递归到==n,说明所有人都选择了一个互相之间各不相同的任务,这便是出口,也是一次结果,用temp【】来记录本次人员的选择,用temp_cost来记录本次结果,misson【】数组保证每个任务只能被选择一次。
设计剪枝,我们发现当走到某个非叶子节点后的temp_cost已经大于之前的结果了,我们可以把它剪掉。

代码:

最低0.47元/天 解锁文章
1690

被折叠的 条评论
为什么被折叠?



