工作分配问题(c++题解)
2026/9/6 14:38:16 网站建设 项目流程

题目描述

设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为cij。试设计一个算法,为每一个人都 分配一件不同的工作,并使总费用达到最小。

设计一个算法,对于给定的工作费用,计算最佳工作分配方案,使总费用达到最小。

输入格式

由文件job.in给出输入数据。第一行有1个正整数n (1≤n≤20)。接下来的n行,每行n个数,第i行表 示第i个人各项工作费用。

输出格式

输出最小总费用

样例

样例输入
复制3 4 2 5 2 3 6 3 4 5
样例输出
复制9

_____________________________________________________________________________

写作不易,点个赞呗!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

_____________________________________________________________________________

#include<bits/stdc++.h> using namespace std; int n,m,ans=INT_MAX; int a[25][25]; bool b[25]; void dfs(int h,int cnt){ if(cnt>ans)return; if(h==n+1){ ans=min(cnt,ans); return; } for(int i=1;i<=n;i++){ if(b[i])continue; b[i]=true; dfs(h+1,cnt+a[h][i]); b[i]=false; } } int main(){ cin>>n; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ cin>>a[i][j]; } } dfs(1,0); cout<<ans; }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询