回溯6--选择工作
2017-07-05 23:54
218 查看
回溯6--选择工作
一、心得
二、题目及分析
三、代码及结果
1 #include <iostream> 2 using namespace std; 3 //原数据数组 4 int data[6][6]={{0,0,0,0,0,0},{0,13,11,10,4,7},{0,13,10,10,8,5},{0,5,9,7,7,4},{0,15,12,10,11,5},{0,10,11,8,8,4}}; 5 //标记数组,遍历人,标记工作是否被做 6 bool vis[6]; 7 //结果数组 8 int ans[6];//用来存哪个人做的哪项工作 9 //找最大值 10 int maxx=0; 11 int ansx[6]; 12 13 void print(){ 14 cout<<maxx<<endl; 15 for(int i=1;i<=5;i++){ 16 cout<<ansx[i]<<" "; 17 } 18 cout<<endl; 19 } 20 21 void search(int step,int sum){ 22 if(step==6) return; 23 else 24 for(int i=1;i<=5;i++){//每个人选工作 25 if(!vis[i]){ 26 sum+=data[step][i],vis[i]=true,ans[step]=i; 27 if(sum>maxx){ 28 maxx=sum; 29 for(int j=1;j<=5;j++){ 30 ansx[j]=ans[j]; 31 } 32 } 33 search(step+1,sum); 34 vis[i]=false,sum-=data[step][i]; 35 } 36 } 37 } 38 39 int main(){ 40 search(1,0); 41 print(); 42 return 0; 43 }
相关文章推荐
- 选择工作 回溯搜索
- 考研、转行和工作如何选择?
- 外企工作一年,今后职业方向如何选择
- 工作分配——搜索与回溯
- 工作三年后,我选择离开腾讯
- 如何启动eclipse时提示选择工作空间||删除workspace空间的目录||快捷方式指向workspace
- 工作之选择好工作1
- 思考下:工作沟通工具的选择(QQ?、微信?、邮件?、m2m还是其他的?)
- 三年我选择了回到自己喜欢的技术工作
- 如何启动eclipse时提示选择工作空间||删除workspace空间的目录
- 工作的选择
- 不要和一种编程语言厮守终生:为工作正确选择
- [软件人生]程序员与语言选择——给一个刚毕业的大学生工作方向的分析对话
- 选择工作时,我们应该关注什么?
- 数据挖掘前景及工作方向选择
- 《一位IT退休老兵的感言、工作、生活、前途、选择》
- 如何为电源选择正确的工作频率
- 老徐的工作随笔(2)选择比机会更重要
- 选择一份工作就如同豪赌了一次
- javascript写的工作回溯——树形结构