最大效益

设有 A B C D E 五人从事 J1 J2 J3 J4 J5 五项工作,每人只能从事 一项,他们的效益如下。
  最大效益_第1张图片
每人选择五项工作中的一项,在各种选择的组合中,找到效益最高的的一种组合输出。
 
#include
#include
#include
#include<string>
#include
#include
using namespace std;
int data[6][6]={{0,0,0,0,0,0},{0,13,11,10,4,7},{0,13,10,10,8,5},{0,5,9,7,7,4},{0,15,12,10,11,5},{0,10,11,8,8,4}};
int max1=0,g[10],f[10];
bool pd[10];
void dfs(int q,int p)
{
    for(int i=1;i<=5;i++)
    {
        if(pd[i]==0)
        {
            f[q]=i;
            pd[i]=1;
            p+=data[q][i];
            if(q<5)dfs(q+1,p);
            else if(p>max1)
            {
                max1=p;
                for(int i=1;i<=5;i++)
                g[i]=f[i];
            }
        p-=data[q][i];
        pd[i]=0;
        }
    }
}
int main()
{
    dfs(1,0);
    for (int i=1;i<=5;i++)
    cout<<char(64+i)<<":J"<" ";
    cout<<endl;
    cout<<"supply:"<endl;                 
}

 

转载于:https://www.cnblogs.com/sssy/p/6607254.html

你可能感兴趣的:(最大效益)