• 大小: 1.29M
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-09-02
  • 语言: 其他
  • 标签: 其他  

资源简介

运动员最佳匹配问题.zip

资源截图

代码片段和文件信息

#include
#include  
#include 
using namespace std;

int na1[20][20]a2[20][20]b[20][20];
int best=0;


class people   
{   
public:   

    int value;   
    int dep;   
    int sss[21];   
    int record[21][21];   
    bool operator < (const people & b) const  
    {   
        if(value        else return false;   
    }   
    people()   
    {   
        value=0;   
        dep=0;   
        for(int i=1;i<=n;i++)   
            sss[i]=i;   
        for(int i=1;i<=n;i++)   
            for(int j=1;j<=n;j++)   
            {   
                record[i][j]=a1[i][j]*a2[j][i];   
            }   
    }   
    people(const people & A)   
    {   
        value=A.value;   
        dep=A.dep;   
        for(int j=1;j<=n;j++)   
            sss[j]=A.sss[j];   
        for(int i=1;i<=n;i++)   
            for(int j=1;j<=n;j++)   
            {   
                record[i][j]=A.record[i][j];   
            }   
    }   


};   

void getbest()   
{   
    int ijttemphkmax;   
    int limit;   
    priority_queue list;   
    list.push(people());   
    while(!list.empty())   
    {   
        people E(list.top());   
        list.pop();   
        t=E.dep;   
        if (t==n)   
        {   
            if(E.value>best)   
                best=E.value;   
        }   
        else    
        {   
            for(i=t+1;i<=n;i++)   
            {   
                people N(E);   
                N.dep++;   
                temp=N.sss[i];   
                N.sss[i]=N.sss[t+1];   
                N.sss[t+1]=temp;   
                N.value+=a1[t+1][N.sss[t+1]]*a2[N.sss[t+1]][t+1];   
                for(j=1;j<=n;j++)   
                {   
                    N.record[j][N.sss[t+1]]=0;   
                    N.record[t+1][j]=0;   
                }   
                limit=0;   
                for(h=t+2;h<=n;h++)   
                {   
                    max=0;   
                    for(k=1;k<=n;k++)   
                    {   
if(N.record[h][k]>max)   
max=N.record[h][k];   
                    }   
                    limit+=max;   
                }   
                if(N.value+limit>best)   
                {   
                    list.push(N);   
                }   
            }   
        }   
    }   
cout<




int getin()
{
cin>>n;

for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
cin>>a1[i][j];   

for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
cin>>a2[i][j];

for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
b[i][j]=a1[i][j]*a2[j][i];

for(int i=1;i<=n;i++)   
    best+=a1[i][i]*a2[i][i];   
       

return 0;

}


int main()
{
getin();
getbest();


return 0;


}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2012-05-23 10:40  运动员最佳匹配问题\
     目录           0  2012-05-23 10:38  运动员最佳匹配问题\Debug\
     文件      553009  2012-05-23 10:38  运动员最佳匹配问题\Debug\fxy.exe
     文件      796096  2012-05-23 10:38  运动员最佳匹配问题\Debug\fxy.ilk
     文件      282524  2012-05-23 10:38  运动员最佳匹配问题\Debug\fxy.obj
     文件     3097788  2012-05-23 10:30  运动员最佳匹配问题\Debug\fxy.pch
     文件     1115136  2012-05-23 10:38  运动员最佳匹配问题\Debug\fxy.pdb
     文件       91136  2012-05-23 10:38  运动员最佳匹配问题\Debug\vc60.idb
     文件      135168  2012-05-23 10:38  运动员最佳匹配问题\Debug\vc60.pdb
     文件        2882  2012-05-23 10:40  运动员最佳匹配问题\fxy.cpp
     文件        3365  2012-05-23 10:30  运动员最佳匹配问题\fxy.dsp
     文件         514  2012-05-23 10:40  运动员最佳匹配问题\fxy.dsw
     文件       41984  2012-05-23 10:40  运动员最佳匹配问题\fxy.ncb
     文件       48640  2012-05-23 10:40  运动员最佳匹配问题\fxy.opt
     文件         737  2012-05-23 10:38  运动员最佳匹配问题\fxy.plg

评论

共有 条评论