第1题
问题描述:关于整数的二元圈乘运算定义为
(XY)=十进制整数X的各位数字之和x十进制整数Y的最大数字+Y的最小数字
例如,(930)=9*3+0=27.
对于给定的十进制整数X和K,由X和运算可以组成各种不同的表达式.试设计一个算法,计算出由X和运算组成的值为K的表达式最少需用多少个运算.
算法设计:给定十进制整数X和K(1≤X,K≤1020),计算由X和 运算组成的值为K的表达式最少需用多少个运算.
数据输入:输入数据由文件名为input.txt的文本文件提供.每行有2个十进制整数X和K.最后一行是00.
结果输出:将找到的最少运算个数输出到文件output.txt.
第3题
算法设计:对于给定的长、宽、高分别为m、np的长方体,计算最大子长方体的大小.
数据输入:文件input.txt提供输入数据,第1行是3个正整数m、n、p(1≤m,n,p≤50).在接下来的m×n行中每行p个正整数,表示小立方体中的数.
结果输出:将计算结果输出到文件output.txt文件的第1行中的数是计算出的最大子长方体的大小.
第4题
问题描述:给定k个排好序的序列用2路合并算法将这k个序列合并成一个序列.假设采用的2路合并算法合并2个长度分别为m和n的序列需要m+n-1次比较.
试设计一个算法确定合并这个序列的最优合并顺序,使所需的总比较次数最少.
为了进行比较,还需要确定合并这个序列的最运合并顺序,使所需的总比较次数最多.
算法设计:对于给定的k个待合并序列,计算最多比较次数和最少比较次数合并方案.
数据输入:由文件input.txt给出输入数据.第1行有1个正整数k,表示有k个待合并序列.接下来的1行有k个正整数,表示k个待合并序列的长度.
结果输出:将计算的最多比较次数和最少比较次数输出到文件output.txt.
第5题
例如,求72和40的最大公因数,即计算GCD(724,344):
GCD(724,344)=GCD(344,724%344)=GCD(344,36)
=GCD(36,344%36)=GCD(36,20)
=GCD(20,36%20)=GCD(20,16)
=GCD(16,20%16)=GCD(16,4)
=GCD(4,16%4)=GCD(4,0)
=4
第6题
问题描述:设p是奇素数,1≤x≤p-1,如果存在一个整数y(1≤y≤p-1),使得x=y2(modp),则称y是x的模p平方根.例如,63是55的模103平方根.试设计一个求整数x的模p平方根的拉斯维加斯算法.算法的计算时间应为logp的多项式.
算法设计:设计一个拉斯维加斯算法,对于给定的奇素数p和整数x,计算x的模p平方根.
数据输入:由文件input.txt给出输入数据.第1行有2个正整数p和x.
结果输出:将计算的x的模p平方根输出到文件output.txt.当不存在x的模p平方根时,输出0.
第7题
设有三道作业,它们的提交时间及执行时间由下表给出:
试计算在单道程序环境下,采用先来先服务调度算法和最短作业优先调度
算法时的平均周转时间(时间单位:小时以十进制进行计算要求写出计算过程)
第8题
第9题
算法设计:对任意给定的整数n和k,以及完成任务i需要的时间为ti(i=1,2,...,n).设计一个优先队列式分支限界法,计算完成这n个任务的最佳调度.
数据输入:由文件input.txt给出输入数据.第1行有2个正整数n和k.第2行的n个正整数是完成n个任务需要的时间.
结果输出:将计算的完成全部任务的最早时间输出到文件output.txt.
第10题