要求把n項任務分配給
n個人,每個人完成每項任務的成本不同,要求分配成本最小的最優分配方案。
**:#include
#define n 205
using namespace std;
int c[n][n];
int x[n];
int bestm[n];
int n;
int bmin=999999999;
int sum(int k)
int temp=0;
for(int i=1;i<=k;i++)
temp+=c[i][x[i]];
return temp;
void backtrack(int t)
if (t==n){
int ans=sum(n);
if(ansbmin=ans;
for(int i=1;i<=n;i++)
bestm[i]=x[i];
else
for (int i=t;i<=n;i++) {
swap(x[t], x[i]);
if(sum(t)backtrack(t+1);
swap(x[t], x[i]);
int main()
cin>>n;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
cin>>c[i][j];
for(int i=1;i<=n;i++)
x[i]=i;
backtrack(1);
cout最優分配成本:
"<
cout最優成本方案:
"<
for(int i=1;i<=n;i++)
cout<
"個人完成第
"項任務
"<
return 0;
9 2 7 8
6 4 3 7
6 8 1 8
7 6 9 4
50 43 1 58 60
87 22 5 62 71
62 98 97 27 38
56 57 96 73 71
92 36 43 27 95
截圖:
任務分配問題
任務分配問題是在加權 二分圖中尋找最大 或最小 加權匹配的問題。隱藏 分為以下幾類 這些問題都是組合優化的研究物件。有一些員工要完成一些任務。各個員工完成不同任務所花費的時間都不同。每個員工只分配一項任務。每項任務只被分配給乙個員工。怎樣分配員工與任務以使所花費的時間最少?婚配問題 有一些男人和一些...
任務分配問題
題目要求 輸入 第一行是操作員的人數n 4 輸出 完成所有任務的最短時間。測試用例 test input expected output time limitation memory limitation extra process number test case 1 view plain 4 3...
演算法題 任務分配問題 匈牙利演算法
一 問題描述 問題描述 n個人分配n項任務,乙個人只能分配一項任務,一項任務只能分配給乙個人,將一項任務分配給乙個人是需要支付報酬,如何分配任務,保證支付的報酬總數最小。問題數學描述 二 例項分析 窮舉法 在講將匈牙利演算法解決任務問題之前,先分析幾個具體例項。以3個工作人員和3項任務為例項,下圖為...