当前位置: 首页 > news >正文

双机调度算法

假设当前有两个处理机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);
}
http://www.lryc.cn/news/277109.html

相关文章:

  • 精进单元测试技能——Pytest断言的艺术
  • 探索人工智能:深度学习、人工智能安全和人工智能
  • CHS_02.1.4+操作系统体系结构 二
  • 【python可视化大屏】使用python实现可拖拽数据可视化大屏
  • FineBI实战项目一(4):指标分析之每日订单总额/总笔数
  • 如何确定CUDA对应的pytorch版本?
  • 分布式锁3: zk实现分布式锁5 使用中间件curator
  • 扩展边界opencv
  • 开源C语言库Melon:Cron格式解析
  • vue的学习方法
  • Hive之set参数大全-2
  • C++面试宝典第17题:找规律填数
  • ubuntu查看内存使用情况
  • ES6 新增 Set、Map 两种数据结构的理解
  • 影视视频知识付费行业万能通用网站系统源码,三网合一,附带完整的安装部署教程
  • Java字符串拼接常用方法总结
  • 【2023 CSIG垂直领域大模型】大模型时代,如何完成IDP智能文档处理领域的OCR大一统?
  • Phi-2小语言模型QLoRA微调教程
  • hadoop自动获取时间
  • 【面试高频算法解析】算法练习8 单调队列
  • ATTCK视角下的信息收集:Sysmon检测
  • 02、Kafka ------ 配置 Kafka 集群
  • 2024年全球网络安全预测报告
  • Qt - QML与C++数据交互详解
  • Kettle Local引擎使用记录(一)(基于Kettle web版数据集成开源工具data-integration源码)
  • Java--业务场景:在Spring项目启动时加载Java枚举类到Redis中(补充)
  • WPF 基础入门(资源字典)
  • 文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《考虑电氢耦合和碳交易的电氢能源系统置信间隙鲁棒规划》
  • ubuntu设定时间与外部ntp同步
  • DataFrame详解