订单分配

订单分配

http://www.nowcoder.com/questionTerminal/3f495307bfca40e49b0e2b15b14ce923

暴力方法
复杂度:O(n*n!)

#include<bits/stdc++.h>

using namespace std;

double mp[15][15];
int n;
int a[15];
int v[15];

int main()
{
    scanf("%d",&n);
    for(int i = 0;i<n;i++)
    {
        for(int j = 0;j<n;j++)
        {
            scanf("%lf",&mp[i][j]);
        }
        a[i] = i;
    }
    double sum = 0;
    double ans = -1;
    do
    {
        sum = 0;
        for(int i = 0;i<n;i++)
            sum+=mp[i][a[i]];
        if(sum>ans)
        {
            for(int i = 0;i<n;i++)
                v[i] = a[i]+1;
            ans = sum;
        }
    }
    while(next_permutation(a,a+n));
    printf("%.2lf\n",ans);
    for(int i = 0;i<n;i++)
    {
        printf("%d %d\n",i+1,v[i]);
    }
}
全部评论

相关推荐

02-15 22:29
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务