java及程序|工作分配问题 Java 回溯
问题描述:
设有n件工作分配给n个人。为第i个人分配工作j所需的费用为c[i][j] 。试设计一个算法,计算最佳工作分配方案,为每一个人都分配1 件不同的工作,并使总费用达到最小。
3
10 2 3
2 3 4
3 4 5
import java.util.Scanner;
public class GongZuoFenPei {
static int n;
static int[][] p;
static int[][] t;
//标记数组
static int minP;
static int tempMinP=0;
public static void main(String[] args) {
Scanner input= new Scanner(System.in);
n=input.nextInt();
p=new int[n][n];
t=new int[n][n];
for (int i = 0;
i < n;
i++) {
for (int j = 0;
j < n;
j++) {
p[i][j]=input.nextInt();
minP+=p[i][j];
}
}
getMinP(0);
System.out.println(minP);
input.close();
}
public static void getMinP(int k){
if(k==n){
if(tempMinP
【java及程序|工作分配问题 Java 回溯】另一种思路可以求n的全排列,遍历,求出最优解
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- JS中的各种宽高度定义及其应用
- 基于微信小程序带后端ssm接口小区物业管理平台设计
- 参保人员因患病来不及到指定的医疗机构就医,能否报销医疗费用()
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- 事件代理
- Java|Java OpenCV图像处理之SIFT角点检测详解
- 事件处理程序
- java中如何实现重建二叉树
- 数组常用方法一