回溯6--选择工作
一、心得
二、题目及分析
三、代码及结果
1 #include2 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){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 }