题目

思路:先用两个二维数组记录男女优势,再将他们对应位置相乘记录到数组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。
本文介绍了如何利用全排列算法解决寻找二维数组中男女优势组合,使得矩阵之和最大的问题。核心代码涉及next_permutation函数,通过遍历所有可能的排列组合,计算并比较矩阵之和,找出最优解。
2039

被折叠的 条评论
为什么被折叠?



