8. 数字迷问题。
A B C A B
X A
------------
D D D D D D
9. 简单分治问题。
用递归分治法求出n个元素集合中的最大值和最小值。
10. 大整数乘法。
设计一个有效地算法,进行两个n(n<256)位大整数的乘法运算。
11. 取数问题。
有两个人轮流取2n个数中的n个数,所取数之和大者为胜。请编写算法,让先取数者胜,模拟取数过程。
12. 币值统计问题。
某单位给每个职工发工资(精确到元),为了保证不要临时归还零钱且取款的张数最少,取工资前需要统计出所有职工的工资所需
各种币值(100,50,20,10,5,2,1元共7种)的张数,请编程完成。
13. 子集分划问题。
给定正整数n, 计算出n个元素的集合{1,2,...,n}可以划分为多少个不同的非空子集。
14. 最X序列问题。
找出由n个数组成的序列的最长单调递增子序列。
15. 硬币找钱问题。
有6种不同面值的硬币,各硬币的面值分别为5分、1角、2角、5角、1元和2元。先要用这些面值的硬币来购物和找钱。
购物时可以使用的各种面值的硬币个数存于数组coins[6]中,商店里各面值的硬币有足够多。在一次购物中希望使用最少硬币个数。
对于给定的各种面值的硬币个数和付款金额,编程计算使用硬币个数最少的交易方案。
input: 输入6个整数和一个2位小数的实数,分别代表可以使用的各种面值的硬币个数和付款金额。
output:最少硬币个数。 如果不可能完成交易,则输出"impossible"。
16. 作业调度问题。
n个作业(1,2,...,n)要在由两台机器M1和M2组成的流水线上完成加工。每个作业加工顺序都是现在M1上加工,
然后再M2上加工。M1和M2加工作业i所需要的时间分别为ai和bi。确定这n个作业的最优加工顺序,使得从第一个
作业在机器M1上开始加工,到最后一个作业在机器M2上加工完成所需要的时间最少。
比如:
n=3
-------------------------------------------------
作业i 机器M1 机器M2
1 2 1
2 3 1
3 2 3
-------------------------------------------------
这3个作业的6种可能的调度方案是(1,2,3),(1,3,2),(2,1,3),(2,3,1),(3,1,2),(3,2,1),它们所对应的完成时间和分别是19,18,20,21,
19,19. 显而易见,最佳调度方案是(1,3,2),其完成时间和为18.