設有n件工作分配給n個人。將工作i分配給第j個人所需的費用為cij 。 設計乙個演算法,對於給定的工作費用,為每乙個人都分配1 件不同的工作,並使總費用達到最小。
輸入格式:
輸入資料的第一行有1 個正整數n (1≤n≤20)。接下來的n行,每行n個數,表示工作費用。
輸出格式:
將計算出的最小總費用輸出到螢幕。
輸入樣例:
在這裡給出一組輸入。例如:
310 2 3
2 3 4
3 4 5
輸出樣例:
在這裡給出相應的輸出。例如:
#include
using
namespace std;
int n;
//n件工作,n個人
int c[30]
[30];
// 將工作i分配給第j個人所需的費用為cij
int cc;
//當前費用
int bestx=
1000000
;//當前最小費用
int x[30]
;//工作與人
void
backtrack
(int t)
return;}
for(
int k=
1;k<=n;k++)}
}int
main()
}backtrack(1
); cout<}
5 2 工作分配問題
解決工作分配問題 有n份作業分配給n個人去完成,每人完成乙份作業。假定第i個人完成第j份作業需要花費cij時間,cij 0,1 i,j n。試設計乙個回溯演算法,將n份作業分配給n個人完成,使得總花費時間最短。首先,計算工人和任務的所有組合方式,然後對於每一種組合方式,挑選出時間最短的一種,這裡呼叫...
工作分配問題
問題 設有n件工作分配給n個人,將工作i分配給第j個人所需的菲傭為cij,試設計乙個演算法,為每乙個人分配一件不同的工作,並使總費用達到最小。輸入 第一行有乙個正整數n,接下來n行,每行n個數,表示工作費用。輸入 最小總費用 例子 輸入 3 10 2 3 2 3 4 3 4 5 輸出 9 inclu...
工作分配問題
時間限制 1 sec 記憶體限制 128 mb 提交 10 解決 7 您該題的狀態 已完成 提交 狀態 討論版 設有n件工作分配給n個人,將工作i分配給第j個人費用為cij,為每個人分配一件不同的工作,對於給定的工作費用,計算最佳工作分配方案,使得中費用達到最小。第一行有1個正整數 1 n 20 接...