设有n项任务,加工时间分别表示为正整数t1,t2,...,tn。背包问题系列

来源:互联网 发布:java main函数 sleep 编辑:程序博客网 时间:2024/05/21 12:57

设有n项任务,加工时间分别表示为正整数t1,t2,...,tn。现有2台同样的机器,从0时刻可以安排对这些任务的加工,知道T时刻所有任务完成,总加工时间为T。

设计算法使得总加工时间T最小的调度方案。

设给定的实例:

t1=1

t2= 5

t3=2

t4= 10

t5=3

不理解或者需要交流的同学可以粉我新浪微博@雷锹,私信哟!!!

每题都写思路效率太低了,有需要或者是实在不明白去我微博私信一下我更新博客

public class _1 {public static void main(String[] args) {// TODO Auto-generated method stubint [] t = {0, 1, 2, 3 , 4, 5};int middle = 0;int sumTime = 0;for(int i = 1; i < t.length; i++){sumTime += t[i];}middle = sumTime / 2;int [][] sum = new int [t.length][middle+1];for(int i = 1; i < t.length; i++){for(int j = 1; j <= middle; j++){if(j - t[i]  >= 0)sum[i][j] = Math.max(sum[i-1][j], sum[i-1][j-t[i]]+t[i]);elsesum[i][j] = sum[i-1][j];}}/*for(int i = 0; i <sum.length; i++){for(int j = 0; j < sum[0].length; j++)System.out.print(sum[i][j]+" ");System.out.println();}*/System.out.println(sumTime-sum[sum.length-1][sum[0].length-1]);}}


0 0
原创粉丝点击