双机调度算法

假设当前有两个处理机A、B,以及n个待处理的任务。第i个任务在处理处理机A上处理需要的时间为ai,在处理机B上处理的时间为bi,两个处理机可以并行处理任务,但单个处理机不能同时执行任务。要求给定n个任务及各个任务对应的ai 、bi,求得顺序完成这些任务所需要的最短时间

ans:
动态规划算法,最重要的是找出状态转移方程。直接上答案,后续再补充做解释:

#include<stdio.h>

#define min(a,b) ((a<=b)?a:b)
#define max(a,b) ((a<=b)?b:a)

#define n 5         //作业
int a[n]={
   2,6,7,9,12};
int b[n]={
   2,6,7,9,12};
int dp[20][1000]; // dp[i][j]表示前i个作业中A机器花费j的时候,B所花的时间

int main(void) {
   
    int sum = 0;
    for(int i=1; i<=n; i++) {
   
        sum+=a[i];
        for(int j=0; j<=sum; j++) {
   
            dp[i][j]=dp[i-1][j]+b[i];
            if(j>=a[i]) {
   
                dp[i][j]=min(dp[i-1][j]+b[i], dp[i-1][j-a[i]]);
            }
        }
    }
    int ans = 99999;
    for(int i = 0; i <= sum; i++) {
   
        ans = min(ans, max(dp[n][i],i));
    }
    printf("ans = %d\n", ans);
}

相关推荐

  1. 调度算法

    2024-01-10 10:30:03       38 阅读
  2. 部署学习

    2024-01-10 10:30:03       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-10 10:30:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-10 10:30:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-10 10:30:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-10 10:30:03       20 阅读

热门阅读

  1. 力扣-135.分发糖果

    2024-01-10 10:30:03       31 阅读
  2. 基于长短期神经网络lstm的电子密度预测

    2024-01-10 10:30:03       40 阅读
  3. 可视化试题(二)

    2024-01-10 10:30:03       32 阅读
  4. 免费用chatGPT

    2024-01-10 10:30:03       44 阅读
  5. 第7章 DOM(下)

    2024-01-10 10:30:03       34 阅读
  6. AI真正的Killer App 仍然缺席

    2024-01-10 10:30:03       35 阅读
  7. 破解国企绩效管理中存在的三大难题

    2024-01-10 10:30:03       24 阅读
  8. MATLAB对数据隔位抽取和插值的几种方法

    2024-01-10 10:30:03       35 阅读