考查最大元素问题:从n个整数中找出最大者。a)试分别采用迭代和递归两种模式设计算法,在线性时间内解决该问题;b)用C++语言实现你的算法,并分析它们的复杂度。
第1题
问题描述:机器人Rob在一个有n×n个方格的方形区域F中收集样本.(i,j)方格中样本的价值为v(i,j),如图3-6所示.Rob从方形区域F的左上角A点出发,向下或向右行走,
直到右下角的B点,在走过的路上,收集方格中的样本.Rob从A点到B点共走2次,试找出Rob的2条行走路径,使其取得的样本总价值最大.
算法设计:给定方形区域F中的样本分布,计算Rob的2条行走路径,使其取得的样本总价值最大.
数据输入:由文件input.xt给出输入数据.第1行有1个正整数n,表示方形区域F有n×n个方格.按下来每行有3个整数,前2个数表示方格位置,第3个数为该位置样本价值.最后一行是3个0.
结果输出:将计算的最大样本总价值输出到文件output.txt.
第2题
第3题
算法设计:对于给定的n件工作和n个人,计算最优分配方案和最差分配方案.
数据输入:由文件input.txt提供输入数据.文件的第1行有1个正整数n,表示有n件工作要分配给n个人做.接下来的n行中,每行有n个整数cij(1≤i≤n,1≤j≤n),表示第i个人做第j件工作产生的效益为cij.
结果输出:将计算的最小总效益和最大总效益输出到文件output.txt.
第4题
算法设计:对任意给定的整数n和k,以及完成任务i需要的时间为ti(i=1,2,...,n).设计一个优先队列式分支限界法,计算完成这n个任务的最佳调度.
数据输入:由文件input.txt给出输入数据.第1行有2个正整数n和k.第2行的n个正整数是完成n个任务需要的时间.
结果输出:将计算的完成全部任务的最早时间输出到文件output.txt.
第5题
0-1背包问题描述如下;给定n种物品和一个背包.物品i的重量是wi,其价值为vi背包的容量为C.应如何选择装入背包的物品,使装入背包中物品的总价值最大?
在选择装入肯包的物品时,对每种物品i只有2种选择,即装入背包或不装入背包.不能将物品i装入背包多次,也不能只装入部分的物品i.
0-1背包问题形式化描述如下:给定,要求n元0-1向量,使得而且达到最大.
算法设计:对于给定的n种物品的重量和价值,以及背包的容量,计算可装入背包的最大价值.
数据输入:由文件input.txt给出输入数据.第1行有2个正整数n和c,n是物品数,c是背包的容量.接下来的1行中有n个正整数,表示物品的价值.第3行中有n个正整数,表示物品的重量.
结果输出:将计算的装入背包物品的最大价值和最优装入方案输出到文件output.txt
第6题
算法设计:给定表示书的总页码的十进制整数n(1≤n≤109),计算书的全部页码中分别用到多少次数字0、1、2、...9.
数据输入:输入数据由文件名为input.txt的文本文件提供.每个文件只有1行,给出表示书的总页码的整数n.
结果输出:将计算结果输出到文件output.txt.输出文件共10行,在第k(k=1,2,...10)行输出页码中用到数字k-1的次数.
第7题
(i)mZ+nZ是个数环。
(ii)
(iii)mZ+nZ==dZ,这里d=(m,n)是m与n的最大公因数。
(iv)mZ+nZ=Z(m,n)=1,
第8题
算法设计:对于给定的n个正整数,设计一个算法,用最少的无优先级运算次数产生整数m.
数据输入:由文件input.txt给出输入数据.第1行有2个正整数n和m.第2行是给定的用于运算的n个正整数.
结果输出:将计算的产生整数m的最少无优先级运算次数以及最优无优先级运算表达式输出到文件output.txt.
第9题
第10题
问题描述:给定一个自然数n,由n开始可以依次产生半数集set(n)中的数如下:
(1)n∈set(m);
(2)在n的左边加上一个自然数,但该自然数不能超过最近添加的数的一半:
(3)按此规则进行处理,直到不能再添加自然数为止.
例如,set(6)={6,16,26,126,36,136}.半数集set(6)中有6个元素.注意,该半数集是多重集.
算法设计:对于给定的自然数n,计算半数集set(n)中的元素个数.
数据输入:输入数据由文件名为input.txt的文本文件提供.每个文件只有一行,给出整数n(0<n<1000).
结果输出:将计算结果输出到文件output.txt.输出文件只有一行,给出半数集set(n)中的元素个数.
第11题
问题描述:设是要进行排列的n个元素.其中元素可能相同.试设计一个算法,列出R的所有不同排列.
算法设计:给定n及待排列的n个元素.计算出这n个元素的所有不同排列.
数据输入:由文件input.txt提供输入数据.文件的第1行是元素个数n,1≤n≤500.接下来的1行是待排列的n个元素.
结果输出:将计算出的n1个元素的所有不同排列输出到文件output.txt.文件最后1行中
的数是排列总数.