1. 程式人生 > >算法第5章上機實踐

算法第5章上機實踐

一個 ima 數組 代碼 每一個 不能 超時 分享圖片 完成

1.實踐題目 :工作分配問題

2.問題描述

設有n件工作分配給n個人。將工作i分配給第j個人所需的費用為cij 。

設計一個算法,對於給定的工作費用,為每一個人都分配1 件不同的工作,並使總費用達到最小。

3.算法描述

n維的解空間,每個解空間可以取1-n,表示這個任務由第幾個人來完成,加上對應的費用

取值完後對應的標記數組置1 表示這個人不能再做其他任務

回溯之後置0 減去對應的費用

剪枝:(如果當前費用比最小費用大) (標記數組為1 表示已經有工作做) 都停止遞歸

技術分享圖片

4.心得體會

學會了回溯法的框架和幾種剪枝函數的代碼

要通過嚴格的剪枝函數才能避免程序超時

要理清每一層的遞歸方式,才能找到程序的問題

算法第5章上機實踐