工作分配問題 (回溯法)

2021-09-19 08:00:20 字數 1087 閱讀 8056

工作分配問題

time limit: 1000 ms memory limit: 65536 kib

problem description

設有n件工作分配給n個人。將工作i分配給第j個人所需的費用為 cij。試設計乙個演算法,為每乙個人都分配1 件不同的工作,並使總費用達到最小。

設計乙個演算法,對於給定的工作費用,計算最佳工作分配方案,使總費用達到最小。

input

輸入資料的第一行有1 個正整數n (1≤n≤20)。接下來的n行,每行n個數,表示工作費用。

output

將計算出的最小總費用輸出。

sample input

310 2 3

2 3 4

3 4 5

sample output

9hint

source

#include using namespace std;

int a[23][23];

int f[22]; //f[i]等於多少就代表第i份工作被第幾個人分配到

int n;

int minvalue = 0;

int temp = 0;

void traceback(int x)

else

}}int main()

traceback(1);

cout《還有一種**,後來覺得比上面的**要簡潔,思路是差不多的,後來才想起來

#include using namespace std;

int minn = 0,a[22][22];

int vis[22];

int n;

void traceback(int x,int s) //x代表第幾份工作

for(int i = 1; i <= n; i++)

vis[i] = 0;}}

}int main()

for(int i = 1;i <= n; i++)

minn += a[i][i];

traceback(1,0);

cout

}

回溯法 工作分配問題(dfs)

include using namespace std typedef long long ll const int maxn 1e5 5 const int inf 0x3f3f3f3f int n,c 20 20 將工作i分配給第j個人所需要的費用 每個人分配到乙個對應的工作,n個工作分別分配給...

回溯法解決工作分配問題及分析

工作分配問題 設有n件工作分配給n個人。將工作i分配給第j個人所需的費用為cij 設計乙個演算法,對於給定的工作費用,為每乙個人都分配1 件不同的工作,並使總費用達到最小。輸入格式 輸入資料的第一行有1 個正整數n 1 n 20 接下來的n行,每行n個數,表示工作費用。輸出格式 將計算出的最小總費用...

作業分配(回溯法)

有n份作業分配給n個人去完成,每人完成乙份作業。假定第i個人完成第j份作業需要花費cij時間,cij 0,1 i,j n。試設計乙個回溯演算法,將n份作業分配給n個人完成,使得總花費時間最短。c 實現 author qinwu created time 2017 4 30 22 45 25 file...