1、首先羽毛球队有差衷侧糸男女运动员各n人。给定2个n×n矩阵P和Q。P[i][j]是男运动员i和女运动员j配对组成混合双打的男运动员竞赛优势;Q[i][j]是女运动员i和男运动员j配合的女运动员竞赛优势。由于技术配合和心理状态等各种因素影响,P[i][j]不一定等于Q[j][i]。男运动员i和女运动员j配对组成混合双打的男女双方竞赛优势为P[i][j]*Q[j][i]。
2、然后设计一个算法,计算男女运动员最佳配对法,使各组男女双方竞赛优势的总和达到最大。
3、设计一个算法,对于给定的男女运动员竞赛优势,计算男女运动员最佳配对法,使各组男女双方竞赛优势的总和达到最大。
4、输入格式。输入数据第一行有1 个正整数n (1≤n≤10)。接下来的2n行,每行n个数。前n行是P,后n行是Q。
5、这道题目共有n!种配对情况,也就是相当于固定男运动员,然后对女运动员进行一次全排列,并求出对应的优势之和的最大值,本题可以用回溯法,也可以用分支限界刮茕栓双法,在使用分支限界法的时候,关键是在于设计上界函数。 在这里,我们把上界函数定义为:剩下的未配对的女运动员(不考虑男运动员配对情况下)所能达到的优势最大值之和(记为r)与当前配对已达到的优势(记为sum)之和。在程序里体现如下:
6、在一开始时候,r被初始化为:
7、其中maxout的定义为:
8、在使用分支限界法的时候,一旦有一个叶节点出来,那么就立即结束算法,因为最先出来的叶节点必定是最优解。代码实现:
9、运行结果: