问题描述:假设有n个任务由k个可并行工作的机器完成.完成任务i需要的时间为ti试设计一个算法找
算法设计:对任意给定的整数n和k,以及完成任务i需要的时间为ti(i=1,2,...,n).设计一个优先队列式分支限界法,计算完成这n个任务的最佳调度.
数据输入:由文件input.txt给出输入数据.第1行有2个正整数n和k.第2行的n个正整数是完成n个任务需要的时间.
结果输出:将计算的完成全部任务的最早时间输出到文件output.txt.
算法设计:对任意给定的整数n和k,以及完成任务i需要的时间为ti(i=1,2,...,n).设计一个优先队列式分支限界法,计算完成这n个任务的最佳调度.
数据输入:由文件input.txt给出输入数据.第1行有2个正整数n和k.第2行的n个正整数是完成n个任务需要的时间.
结果输出:将计算的完成全部任务的最早时间输出到文件output.txt.
第1题
算法设计:对于给定的维修程序时间表,计算最优时间表.
数据输入:由文件input.txt给出输入数据.第1行有2个正整数n和k.n表示仪器的工作时间单位,k是维修程序数.在接下来的k行中,每行有2个表示维修程序的整数s和t,该维修程序从第s个时间单位开始,持续t个时间单位.
结果输出:将计算出的最短维修时间输出到文件output.txt.
第2题
问题描述:给定正整数序列x1,x2,…,xn要求:
①计算其最长递增子序列的长度s.
②计算从给定的序列中最多可取出多少个长度为s的递增子序列.
③如果允许在取出的序列中多次使用x1和xn,则从给定序列中最多可取出多少个长度为s的递增子序列.
算法设计:设计有效算法完成①、②、③提出的计算任务.
数据输入:由文件input.txt提供输入数据.文件第1行有1个正整数n,表示给定序列的长度.接下来的1行有n个正整数x1,x2,...,xn,
结果输出:将任务①、②、③的解答输出到文件output.txt.第1行是最长递增子序列的长度s.第2行是可取出的长度为s的递增子序列个数.第3行是允许在取出的序列中多次使用x1和xn时可取出的长度为s的递增子序列个数.
第3题
A、k-1
B、K
C、k+1
D、k(k+1)/2
第4题
问题描述:设磁盘上有n个文件每个文件占用磁盘上的1个磁道.这n个文件的检索概率分别是且磁头从当前磁道移到被检信息磁道所需的时间可用这两个磁道之间的径向距离来度量.如果文件fi存放在第i(1≤i≤n)道上,则检索这n个文件的期望时间是.式中,d(i,j)是第i道与第j道之间的径向距离|i-j|.
磁盘文件的最优存储问题要求确定这n个文件在磁盘上的存储位置,使期望检索时间达到最小.试设计一个解此问题的算法,并分析算法的正确性与计算复杂性.
算法设计:对于给定的文件检索概率,计算磁盘文件的最优存储方案.
数据输入:由文件input.txt给出输入数据.第1行是正整数n,表示文件个数.第2行有n个正整数a,表示文件的检索概率.实际上第k个文件的检索概率应为
结果输出:将计算的最小期望检索时间输出到文件output.txt.
第5题
居住了.于是在月球上建立了新的绿地,以便在需要时移民.令人意想不到的是,2177年冬由于未知的原因,地球环境发生了连锁崩溃,人类必须在最短的时间内迁往月球.现有n个太空站位于地球与月球之间,且有m艘公共交通太空船在其间来回穿梭.每个太空站可容纳无限多的人,而每艘太空船i只可容纳H[i]个人.每艘太空船将周期性地停靠一系列的太空站,例如,(1,3,4)表示该太空船将周期性地停靠太空站134134134...每艘太空船从一个太空站驶往任一太空站耗时均为1.人们只能在太空船停靠太空站(或月球、地球)时上下船.初始时,所有人全在地球上,太空船全在初始站.试设计一个算法,找出让所有人尽快全部转移到月球上的运输方案.
算法设计:对于给定的太空船的信息,找到让所有人尽快全部转移到月球上的运输方案.
数据输入:由文件input.txt提供输入数据.文件第1行有3个正整数n(太空站个数)、m(太空船个数)和k(需要运送的地球上的人数).其中,1≤m≤13,1≤n≤20,1≤k≤50.
接下来的m行给出太空船的信息.第i+1行说明太空船pi.第1个数表示pi可容纳的人数Hpi;第2个数表示pi一个周期停靠的太空站个数r(1≤r≤n+2);随后r个数是停靠的太空站的编号Si1,Si2,...Sir,地球用0表示,月球用-1表示.时刻0时,所有太空船都在初始站,然后开始运行.在时刻1、2、3、...等正点时刻各艘太空船停靠相应的太空站.人只有在0、1、2...等正点时刻才能上、下太空船.
结果输出:将全部人员安全转移所需的时间输出到文件output.txt.如果问题无解,则输出0.
第6题
设B={1,2,...,n}是n块电路板的集合.集合L={N1,N2,...,Nm}是n块电路板的m个连接块.其中每个连接块N是B的一个子集,且N中的电路板用同一根导线连接在一起.在最小长度电路板排列问题中,连接块的长度是指该连接块中第1块电路板到最后1块电路板之间的距离.例如,设n=8,m=5,给定n块电路板及其m个连接块如下:
这8块电路板的一个可能的排列如图5-1所示.
在最小长度电路板排列问题中,连接块的长度是指该连接块中第1块电路板到最后1块电路板之间的距离.例如,在图5-1所示的电路板排列中,连接块N4的第1块电路板在插槽3中.它的最后1块电路板在插槽6中,因此N4的长度为3.同理N2的长度为2.图5-1中的连接块最大长度为3.
试设计一个回溯法找出所给n块电路板的最佳排列,使得m个连接块中的最大长度达到最小.
算法设计:对于给定的电路板连接块,设计一个算法,找出所给n个电路板的最佳排列,使得m个连接块中最大长度达到最小.
数据输入:由文件input.txt给出输入数据.第1行有2个正整数n和m(1≤m,n≤20).接下来的n行中,每行有m个数.第k行的第j个数为0表示电路板k不在连接块j中,为1表示电路板k在连接块j中.
结果输出:将计算的电路板排列最小长度及其最佳排列输出到文件output.txt.文件的第一行是最小长度:接下来的1行是最佳排列.
第7题
①设计一个算法求T的最小顶点集S,使T/S是d森林(从叶向根移动).
②分析算法的正确性和计算复杂性.
③设T中有n个顶点,则算法的计算时间复杂性应为O(n)
算法设计:对于给定的带权树,计算最小分离集S.
数据输入:由文件input.txt给出输入数据.第1行有1个正整数n,表示给定的带权树有n个项点,编号为1,2,...,n.编号为1的顶点是树根.接下来的n行中,第计1行描述与i个项点相关联的边的信息.每行的第1个正整数k表示与该项点相关联的边数.其后2k个数中,每2个数表示1条边.第1个数是与该顶点相关联的另一个顶点的编号,第2个数是边权值.k=0,表示相应的结点是叶结点.文件的最后一行是正整数d,表示森林中所有树的从根到叶的路长都不超过d.
结果输出:将计算的最小分离集s的顶点数输出到文件output.txt.如果无法得到所要求的d森林则输出“NoSolution!",
第8题
问题描述:设有n个顾客同时等待一项服务,顾客i需要的服务时间为ti(1≤i≤n).应如何安排n个顾客的服务次序才能使平均等待时间达到最小?平均等待时间是n个顾客等待服务时间的总和除以n.
算法设计:对于给定的n个顾客需要的服务时间,计算最优服务次序.
数据输入:由文件input.txt给出输入数据.第1行是正整数n,表示有n个顾客.接下来的1行中,有n个正整数,表示n个顾客需要的服务时间.
结果输出:将计算的最小平均等待时间输出到文件output.txt.
第9题
圆排列问题描述如下:给定n个大小不等的圆,现要将这n个圆排进一个矩形框中,且要求各圆与矩形框的底边相切.圆排列问题要求从n个圆的所有排列中找出有最小长度的圆排列.例如,当n=3,且所给的3个圆的半径分别为1、1、2时,这3个圆的最小长度的圆排列见图5-9,其最小长度为.
算法设计:对于给定的n个圆,计算最小长度圆排列.
数据输入:由文件input.txt提供输入数据.文件的第1行是1个正整数n,表示有n个圆.第2行有n个正数,分别表示n个圆的半径.
结果输出:将计算的最小长度输出到文件output.txt.文件的第1行是最小长度,保留5位小数.