算法_动态规划_独立任务最优调度问题
来源:互联网 发布:中国电信4g网络频段 编辑:程序博客网 时间:2024/05/16 13:49
问题描述
用2 台处理机A 和B 处理n个作业。设第i 个作业交给机器A 处理时需要时间ai,若由机器B来处理,则需要时间bi。由于各作业的特点和机器的性能关系,很可能对于某些i,有ai>=bi,而对于某些j,j≠i,有aj
import java.util.Scanner;public class Main { private static int n; private static int[] a; private static int[] b; private static int aSum=0; private static int bSum=0; private static boolean[][][] p; /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc=new Scanner(System.in); n=sc.nextInt(); a=new int[n+1]; b=new int[n+1]; for(int i=1;i<=n;i++){ a[i]=sc.nextInt(); aSum+=a[i]; } for(int i=1;i<=n;i++){ b[i]=sc.nextInt(); bSum+=b[i]; } p=new boolean[aSum+1][bSum+1][n+1]; for(int i=0;i<=aSum;i++){ for(int j=0;j<=bSum;j++){ p[i][j][0]=true; } } for(int k=1;k<=n;k++){ for(int i=0;i<=aSum;i++){ for(int j=0;j<=bSum;j++){ if(i>=a[k]){ p[i][j][k]=p[i-a[k]][j][k-1]; } if(j>=b[k]){ p[i][j][k]=p[i][j][k]||p[i][j-b[k]][k-1]; } } } } int minIJ=Integer.MAX_VALUE; for(int i=0;i<=aSum;i++){ for(int j=0;j<=bSum;j++){ if(p[i][j][n]){ if(Math.max(i,j)<minIJ){ minIJ=Math.max(i, j); } } } } System.out.println(minIJ); }}
0 0
- 算法_动态规划_独立任务最优调度问题
- 算法_动态规划_流水作业调度
- 独立任务最优调度问题
- 独立任务最优调度问题
- 独立任务最优调度问题
- 独立任务最优调度问题
- 独立任务最优调度问题
- 独立任务最优调度问题
- 独立任务最优调度问题
- 独立任务最优调度问题
- 独立任务最优调度问题
- 独立任务最优调度问题
- 独立任务最优调度问题
- 独立任务最优调度问题
- 【dp】独立任务最优调度问题
- 王晓东 独立任务最优调度问题
- 独立任务最优调度
- 独立任务最优调度
- 项目名称:上海地铁游
- 第六周项目28-用多文件组织多个类的程序(带武器的角色类)
- C# kinect v2学习笔记(五)骨骼图像和彩色图像的叠加
- 对团队项目的分析
- 如何编译Apache Hadoop2.2.0源代码
- 算法_动态规划_独立任务最优调度问题
- No matching PlatformTransactionManager bean found for qualifier 'default'的解决办法
- C++ 基础面试, 每日一点
- 绘制热点图
- windows下git识别大小写配置
- sdut 2409 dp 打表 结构体
- Scanner Routerhunter 2.0 的中文使用手册
- MySQL学习笔记—运算符与常用函数总结
- 对软件需求的分析