問題描述:設有n件工作分配給n個人。將工作i分配給第j個人所需的費用為cij 。試設計乙個演算法,為每乙個人都分配1 件不同的工作,並使總費用達到最小。設計乙個演算法,對於給定的工作費用,計算最佳工作分配方案,使總費用達到最小。
由檔案input.txt給出輸入資料。第一行有1 個正整數n (1≤n≤20)。接下來的n行,每行n個數,表示工作費用。將計算出的最小總費用輸出到檔案output.txt。例如:
input.txt output.txt
3 9
10 2 3
2 3 4
3 4 5
源程式**
1 #include 2 #include 3增加輸出一種分配方法的**如下:using
namespace
std;
45 ifstream fin("
f:\\gongzuofenpei\\input.txt");
6 ofstream fout("
f:\\gongzuofenpei\\output.txt");
7int **cost;
8bool *body;
9int
cur_cost;
10int
min_cost;
11int
n;12
13int
output()
1418
19int backtrack(int
t)20
26else
2742}43
}44return1;
45}4647
intmain()
48
改進的**
1 #include 2 #include 3using
namespace
std;
45 ifstream fin("
f:\\gongzuofenpei\\input.txt");
6 ofstream fout("
f:\\gongzuofenpei\\output.txt");
7int **cost;
8bool *body;
9int *best;
10int *test;
11int
cur_cost;
12int
min_cost;
13int
n;14
15int
output()
1622
23int backtrack(int
t)24
33else
3449}50
}51return1;
52}5354
intmain()
55
python回溯演算法全排列 回溯演算法 全排列
1 問題描述 對於給定的集合 a,其中的 n 個元素互不相同,如何輸出這 n 個元素的所有排列 全排列 時間複雜度為o 2n 例如 全排列 2 回溯演算法思想 這裡以 a 為例,來說明全排列的生成方法,對於這個集合,其包含 3 個元素,所有的排列情況有 3 6 種,對於每一種排列,其第乙個元素有 3...
回溯演算法 全排列
1 問題描述 對於給定的集合 a,其中的 n 個元素互不相同,如何輸出這 n 個元素的所有排列 全排列 時間複雜度為o 2n 例如 全排列 2 回溯演算法思想 這裡以 a 為例,來說明全排列的生成方法,對於這個集合,其包含 3 個元素,所有的排列情況有 3 6 種,對於每一種排列,其第乙個元素有 3...
回溯法之排列樹
參考文章 當所給問題是從n個元素的集合s中找出滿足某種性質的排列時,解空間為排列樹。例如 旅行售貨員問題 回溯法搜尋排列樹的描述為 void backtrack int t include include include include include include using namespace...