题目
思路:先用两个二维数组记录男女优势,再将他们对应位置相乘记录到数组v,计算矩阵之和最大值。
核心代码:
int c[10] = {0,1,2,3,4,5,6,7,8,9};
int sum, i, ans = 0;
do{
for(sum=i=0;i<n;i++) sum += v[i][C[i]];
if(sum > ans) ans = sum;
}while(next_permutation(c,c+n));
cout << ans << endl;
ps:next_permutation(c,c+n)函数用与从小到大计算容器c.begin()到c.begin()+n之间的全排列,如果计算完了会返回false。