帮我看看我要疯了!!
  • 板块学术版
  • 楼主Al_Ahmar
  • 当前回复4
  • 已保存回复4
  • 发布时间2022/3/12 20:08
  • 上次更新2023/10/28 06:44:24
查看原帖
帮我看看我要疯了!!
583734
Al_Ahmar楼主2022/3/12 20:08

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

输入格式 第一行有1个正整数n(1≤n≤20)。

接下来的n行,每行n个数,表示工作费用。

输出格式 一个整数,表示最小总费用```cpp #include<bits/stdc++.h> using namespace std; int n,b[30][30],minn=0,sum; int a[101],vis[101]; void f(int k) { if(k>n) { for(int i=1;i<=n;i++) { sum+=b[i][a[i]]; minn=min(sum,minn); } sum=0; return; } for(int i=1;i<=n;i++) { if(vis[i]==0) { a[k]=i; vis[i]=1; f(k+1); vis[i]=0; } } } int main() { cin>>n; for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { cin>>b[i][j]; } } f(1); cout<<minn; return 0; }

2022/3/12 20:08
加载中...