Run ID 作者 问题 语言 测评结果 时间 内存 代码长度 提交时间
34636 byxx2023 【搜索与回溯】分工问题(例题) C++ 无测评数据 0 MS 0 KB 833 2023-12-23 17:50:20

Tests(0/0):


#include<bits/stdc++.h> using namespace std; int maxv=INT_MIN,v; bool flag[6]; int a[10][10]{ {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} };//五个人各做五种工作的价值 int b[7],c[7]; void fun(int k) { for(int i=1;i<=5;i++)//k为哪个人,i为这人做第几种工作 { if(flag[i]==0) { flag[i]=1; b[k]=i; v+=a[k][i]; if(k==5) { if(v>maxv)//打擂台 { maxv=v; for(int j=1;j<=5;j++) { c[j]=b[j]; } } } else { fun(k+1); } v-=a[k][i]; flag[i]=0; } } } int main() { fun(1); printf("A:J%d\n",c[1]); printf("B:J%d\n",c[2]); printf("C:J%d\n",c[3]); printf("D:J%d\n",c[4]); printf("E:J%d\n",c[5]); printf("supply:%d",maxv); }