時間限制: 1 sec 記憶體限制: 128 mb
提交: 10 解決: 7
您該題的狀態:已完成
[提交][狀態][討論版]
設有n件工作分配給n個人,將工作i分配給第j個人費用為cij,為每個人分配一件不同的工作,對於給定的工作費用,計算最佳工作分配方案,使得中費用達到最小。
第一行有1個正整數(1<=n<=20).接下來的n行,每行n個數,第i行表示第i個人從事各項工作的費用
共一行,即最小總費用
3 4 2 5
2 3 6
3 4 5
/*
思路:深搜回溯,
1、從給第乙個工人分配第一件工作開始,分配過的工作不能再次分配,然後給第二個工人分第二件工作,
給第i個工人分配第i件工作,一直到給第n個人分配了第n個工作 ,到了搜尋的盡頭,記下總費用sum,然後回溯
2、從第n個工人回到第n-1個工人,給第n-1個工人分配第n個工作,那麼只能給第n個工人分配第n-1個工作
又到了搜尋盡頭,若sum較小,記下sum,回溯
3、從第n-1個工人回到第n-2個工人……
…………
4、從第2個工人會到第1個工人,最終得到最小花費
(回溯的過程就是遍歷所有可行結果的過程,每次回溯改變第i個工人的工作,
那麼第i+1,i+2……n個工人的工作都要重新分配)
*/#include
#define inf 0x3f3f3f3f
int n,ans;
int c[25][25];
int vis[25];
void dfs(int i,int
sum)//i是行號
for(int j=1;j<=n;j++)
}}int main()
工作分配問題
問題 設有n件工作分配給n個人,將工作i分配給第j個人所需的菲傭為cij,試設計乙個演算法,為每乙個人分配一件不同的工作,並使總費用達到最小。輸入 第一行有乙個正整數n,接下來n行,每行n個數,表示工作費用。輸入 最小總費用 例子 輸入 3 10 2 3 2 3 4 3 4 5 輸出 9 inclu...
工作分配問題
problem description 設有n件工作分配給n個人。將工作i分配給第j個人所需的費用為 cij。試設計乙個演算法,為每乙個人都分配1 件不同的工作,並使總費用達到最小。設計乙個演算法,對於給定的工作費用,計算最佳工作分配方案,使總費用達到最小。input 輸入資料的第一行有1 個正整數...
工作分配問題
problem description 設有n件工作分配給n個人。將工作i分配給第j個人所需的費用為 cij。試設計乙個演算法,為每乙個人都分配1 件不同的工作,並使總費用達到最小。設計乙個演算法,對於給定的工作費用,計算最佳工作分配方案,使總費用達到最小。input 輸入資料的第一行有1 個正整數...