python第五章上机实践报告_第五章实践报告 - osc_kk5bjg1i的个人空间 - OSCHINA - 中文开源技术交流社区...
生活随笔
收集整理的這篇文章主要介紹了
python第五章上机实践报告_第五章实践报告 - osc_kk5bjg1i的个人空间 - OSCHINA - 中文开源技术交流社区...
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.實踐問題:工作分配問題
2.問題描述
設有n件工作分配給n個人。將工作i分配給第j個人所需的費用為cij 。 設計一個算法,對于給定的工作費用,為每一個人都分配1 件不同的工作,并使總費用達到最小。
輸入格式:
輸入數據的第一行有1 個正整數n (1≤n≤20)。接下來的n行,每行n個數,表示工作費用。
輸出格式:
將計算出的最小總費用輸出到屏幕。
3.算法描述
解空間:(a1,a2,a3,......,an),a1表示第一個人被分配的工作序號,以此類推。
解空間樹如下:
剪枝:
當前工作費用與下一個待分配工作費用大于已知的可行解的費用,則無需對其及其子樹進行遍歷,即剪枝
for(int i=t;i<=n;i++)
{?? if(sum+c[t][a[i]]>m)
{
continue;
}
else
{
sum += c[t][a[i]];
swap(a[t],a[i]);
BackTrack(t+1);
swap(a[t],a[i]);
sum -= c[t][a[i]];
}
}
4.心得體會
課堂聽講的時候覺得剪枝已經都理解了,但在上機自己敲代碼時,代碼不夠對稱導致出錯,所以錯了很多遍,后面錯著錯著就理解了,現在對回溯法也更加熟悉,不再是紙上談兵。
總結
以上是生活随笔為你收集整理的python第五章上机实践报告_第五章实践报告 - osc_kk5bjg1i的个人空间 - OSCHINA - 中文开源技术交流社区...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jsonobject修改key的值_JS
- 下一篇: 丽江机票多少钱啊?