Description

假设有n个任务由k个并行工作的机器来完成。完成任务i需要的时间为Ti。试设计一个算法找出完成这n个任务的最佳调度,使得完成全部任务的时间最早。
算法设计:对任意给定的整数n和k,以及完成任务i需要的时间为Ti,i=1,2,3……n。计算完成这n个任务的最佳调度。

Input

第一行有2个正整数n和k。第2行的n个正整数是完成n个任务需要的时间。

Output

将计算的完成全部任务的最早时间

Sample Input

7 3
2 14 4 16 6 5 3

Sample Output

17

这题我是用搜索来做的

这题有点像接水问题

var
n,k,tj,i:longint;
b,t:array[0..10000]of longint;
procedure kp(l,r:longint);
var
i,j,mid:longint;
beginif l>=r then exit;i:=l;j:=r;mid:=t[(l+r)div 2];repeatwhile t[i]>mid do inc(i);while t[j]<mid do dec(j);if i<=j thenbegint[0]:=t[i];t[i]:=t[j];t[j]:=t[0];inc(i);dec(j);end;until i>j;kp(l,j);kp(i,r);
end;
procedure search(dep,time:longint);
var
i:longint;
beginif dep>n thenif time<tj thenbegintj:=time;exit;end;if time>=tj then exit;for i:=1 to k dobeginb[i]:=b[i]+t[dep];if b[i]>time then search(dep+1,b[i]) else search(dep+1,time);b[i]:=b[i]-t[dep];end;
end;
beginreadln(n,k);tj:=10000;fillchar(t,sizeof(t),0);for i:=1 to n doread(t[i]);kp(1,n);fillchar(b,sizeof(b),0);search(1,0);write(tj);
end.

转载于:https://www.cnblogs.com/YYC-0304/p/9500239.html

最佳调度问题pascal程序相关推荐

  1. 最佳调度问题(搜索回溯)

    最佳调度问题 [问题描述] 假设有n个任务由k个可并行工作的机器完成.完成任务i需要的时间为ti.试设计一个算法找出完成这n个任务的最佳调度,使得完成全部任务的时间最早. [编程任务] 对任意给定的整 ...

  2. 如何在 iOS、MacOS 上使用 ChatGPT 和适用于 iPhone 的最佳 ChatGPT 应用程序

    目录 什么是聊天 GPT? 如何在我的 iPhone 上使用 ChatGPT? 适用于 iPhone 的最佳 ChatGPT 应用程序 在过去的几周里,出现了许多 ChatGPT 应用程序和网站.如果 ...

  3. Pascal程序结构

    Pascal程序结构 什么是Pascal程序结构 Pascal程序结构是指Pascal程序的基本组成部分及其组织方式,包括程序.单元.过程.函数.类型定义.变量定义.语句和表达式等.程序结构的良好设计 ...

  4. 我的第一次Pascal程序

    今天刚刚来学点Pascal语言,都怪我买的书大多是用Pascal语言写的,所以我只能试着学一点咯! 来一段程序员最经典的Hello World! 1 program exl_2; 2 begin 3 ...

  5. windows归档命令_适用于Windows的最佳文件归档程序

    windows归档命令 Need to extract an archive or compress some files? Avoid big-name programs like WinZip a ...

  6. 流量变现的最佳工具——小程序直播

    如今做直播带货,除了淘抖快三大直播平台之外,就是微信了.在微信上做直播的除了视频号,商家还可以在小程序上做直播带货,不如说小程序直播是微信团队用来专门做直播带货的. 什么是小程序直播? 它是微信官方提 ...

  7. android程序键盘锁_适用于Android的最佳键盘应用程序

    android程序键盘锁 The interactions you have with your phone's keyboard are easily some of the most intima ...

  8. 适用于iPhone或iPod Touch的最佳Office应用程序是什么?

    Want to see what all of the major Office apps for iPhone and iPod Touch offer without wasting money ...

  9. 最优乘车pascal程序

    Description H城是一个旅游胜地,每年都有成千上万的人前来观光.为方便游客,巴士公司在各个旅游景点及宾馆,饭店等地都设置了巴士站并开通了一些单程巴上线路.每条单程巴士线路从某个巴士站出发,依 ...

最新文章

  1. Google Chrome的CSS hack写法
  2. 蜜罐技术——通过布置一些作为诱饵的主机、网络服务或者信息,诱使攻击方对它们实施攻击,从而可以对攻击行为进行捕获和分析...
  3. MapReduce初级案例
  4. table { border-collapse:collapse; }
  5. [Android]你不知道的Android进程化(2)--创建进程
  6. JavaWeb(七)——Cookie、Session
  7. Numpy 排序 -- sort()、argsort()
  8. 安装OpenResty(Nginx+Lua)开发环境
  9. JDK,JRE,JVM,JIT
  10. JS获取标签方法及兼容处理
  11. matlab谐波仿真代码,matlab的谐波仿真程序基于ip-iq法???怎么出不来图像啊???...
  12. python 动态调整控件大小_python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例...
  13. java英文版怎么汉化_请问,java中,将下面的英文名字变为中文 该怎样输出?
  14. NIO框架入门(一):服务端基于Netty4的UDP双向通信Demo演示
  15. java nginx 重启吗_Nginx的启动、停止、平滑重启
  16. 深度学习PyTorch,TensorFlow中GPU利用率较低,使用率周期性变化的问题
  17. HAL库与标准库的理解
  18. 3到5年工作经验是如何回答面试中被问到的Java集合框架问题
  19. ECCVW 2022 | 第二届城市规模点云语义理解挑战赛
  20. Latex如何排版矩阵

热门文章

  1. 重磅!吴恩达、林轩田公开课交流群正式成立啦
  2. extundelete安装_Linux数据安全工具:数据恢复软件extundelete概述
  3. VTK修炼之道77:交互部件_分割/配准类Widget与其他Widget
  4. 数据库记录的添加、修改、删除(DataAdapter、DataTable 、DataRow )
  5. “7th-place-solution-microsoft-malware-prediction”——kaggle微软恶意代码检测比赛第七名代码
  6. 在Navicat中直接向表里添加数据
  7. dokuwiki 部署笔记
  8. Python学习之zip函数
  9. Java基本数据类型及String类
  10. 随笔(二)-- PyCharm如何更改背景图片