一 . 實踐題目
7-2 工作分配問題
二 . 問題描述
設有n件工作分配給n個人。將工作i分配給第j個人所需的費用為cij 。 設計乙個演算法,對於給定的工作費用,為每乙個人都分配1 件不同的工作,並使總費用達到最小。
輸入格式:
輸入資料的第一行有1 個正整數n (1≤n≤20)。接下來的n行,每行n個數,表示工作費用。
輸出格式:
將計算出的最小總費用輸出到螢幕。
輸入樣例:
3
10 2 3
2 3 4
3 4 5
輸出樣例:
9
三 . 演算法描述1. 解空間
第乙個人選擇第幾個工作,第二個人選擇第幾個工作,第三個人選擇第幾個工作......
這道題是乙個排列數問題
2.解空間樹
3.約束函式
cc:當前總費用
bestc:當前最佳費用
if (cc+a[i][x[j]]4.核心**
void backtrack (int四 . 心得體會i)
return
; }
else}}
}
我和同伴一開始對於回溯法的理解都不夠,實驗課的時候我們做第一題但是一直過不了,沒有來得及看第二題。
課後做了第二題,對回溯法有了進一步的理解,但是我們現在做題還是依賴於去套框架,還需要加強理解。
演算法第五章實踐
寫在開頭 emm,這一次的上機是目前來說最自閉的一次,因為,居然!只做出了一道!看來最近的學習跟刷題還是怠慢了,要加把勁了 正文 第一題,用回溯法實現0 1揹包。一開始直接貼了乙個dfs然後稍微的剪了一下枝,然後發現無論怎麼剪枝,第三第四個樣例都會tle。沒辦法,只好加乙個限界函式,在每一次遞迴前加...
演算法第五章作業
1.你對回溯演算法的理解 回溯演算法實際上乙個類似列舉的搜尋嘗試過程,主要是在搜尋嘗試過程中尋找問題的解,當發現已不滿足求解條件時,就 回溯 返回,嘗試別的路徑。回溯法是一種選優搜尋法,按選優條件向前搜尋,以達到目標。但當探索到某一步時,發現原先選擇並不優或達不到目標,就退回一步重新選擇,這種走不通...
演算法第五章作業
1.你對回溯演算法的理解 回溯法採用試錯的思想,它嘗試分步的去解決乙個問題。在分步解決問題的過程中,當它通過嘗試發現現有的分步答案不能得到有效的正確的解答的時候,它將取消上一步甚至是上幾步的計算,再通過其它的可能的分步解答再次嘗試尋找問題的答案。2.請說明 子集和 問題的解空間結構和約束函式 問題的...