运动员最佳配问题,羽毛球队有男女运动员各N人给定两个N *N矩阵P和Q. P[I][J]是男运动员I和女运动员J配对组成混合双打的竞赛优势;Q[I][J]是女运动员I 和男运动员J配合的竞赛优势。由于配合和心理状态等各种因素影响,P[I][J]不一定等于Q[J][I].设计一个算法计算男女运动员最佳配对法,使各组男女双方竞赛优势乘积的总和达到最大。 #include "stdafx.h"
#include
#include
#include
#include
using namespace std;
vector Re; //全局变量,Re用来记录配对情况
vector> P;
vector> Q;
class Queen
{
friend int PairUp(int);
private:
bool Place(int k);
void Backtrack(int k);
int n;
int sum;
vector x;
public:
Queen(int m,int c,int b)
{
x.resize(m+1);
Re.resize(m+1);
n = c;
sum = b;
}
~Queen() { }
};
bool Queen::Place(int k)
{
for(int j=1;j
if(x[j]==x[k]) //不同男运动员和同一个女