算法复习题
复习题2(算法部份)

D.一个算法不能有多个开始处,也不能有多个结束处
答案:B
14.算法中通常需要三种不同的执行流程,即:_____。
A.连续模式、分支模式和循环模式
B.顺序模式、结构模式和循环模式
C.结构模式、分支模式和循环模式
D.顺序模式、分支模式和循环模式
答案:D
15.算法中通常需要三种不同的执行流程,下面说法正确的是:_____。
答案:B
2.计算机是一种按照设计好的程序,快速、自动地进行计算的电子设备,计算机开始计算之前,必须把解决某个问题的程序存贮在计算机的_____中。
A.硬盘B.软盘C.内存D.CPU
答案:C
3.计算机程序由以下两部分即:_____组成。
A.执行部分和数据部分
B.数据部分和程序部分
C.指令部分和数据部分
第1章计算机和算法
1.使用计算机解题的步骤,以下描述正确的是:_____。
A.正确理解题意→设计正确算法→寻找解题方法→编写程序→调试运行
B.正确理解题意→寻找解题方法→设计正确算法→编写程序→调试运行
C.正确理解题意→寻找解题方法→设计正确算法→调试运行→编写程序
D.正确理解题意→寻找解题方法→设计正确算法→编写程序→调试运行
答案:B
10.关于算法的确定性特征,以下不符合算法确定性的是:_____。
A.D←(B * B–4 * A * C)
B.S←(L * H) / 10
C.输入:X
D.输出:L /正整数
答案:D
11.可以用多种不同的方法来描述一个算法,算法的描述可以用:_____。
A.流程图、分支和循环
B.顺序、流程图和自然语言
算法(复习题)1

平均情况:设待查找的元素在数组中的概率为P,不在数组中的概率为1-P,若出现在数组中每个位置的概率是均等的为p/nT(n)=P1D1+P2D2+...+PiDi+(1-P)Dn+1=p/2+n(1-p/2)1.叙述分治算法和动态规划算法的基本思想,并比较两种算法的异同。
答:分治法将待求解的问题划分成K个较小规模的子问题,对这K个子问题分别求解,再将子问题的解合并为一个更大规模的问题的解,自底向上逐步求出原问题的解. 动态规划将待求解的问题分解成若干的子问题,自底向上地通过求解子问题的解得到原问题的解。
动态规划将每个子问题只求解一次并将其解保存在一个表格中,当需要再次求解此子问题时,只是简单的通过查表过的该子问题的解,避免了大量的重复计算.异同:分治法求解的问题分解后的子问题都是独立的,而使用动态规划求解的问题分解后得到的子问题往往不是相互独立的。
分治法是自顶向下用递归的方法解决问题,而动态规划则是自底向上非递归解决问题。
1.简述分治算法求解过程的三个阶段。
答:(1)划分:既然是分治,当然需要把规模为n的原问题划分为k个规模较小的子问题,并尽量使这k个子问题的规模大致相同。
(2)求解子问题:各子问题的解法与原问题的解法通常是相同的,可以用递归的方法求解各个子问题,有时递归处理也可以用循环来实现。
(3)合并:把各个子问题的解合并起来,合并的代价因情况不同有很大差异,分治算法的有效性很大程度上依赖于合并的实现。
2.叙述分治法的基本思想,并分析分治法与减治法二者的区别。
答:分治法将待求解的问题划分成K个较小规模的子问题,对这K个子问题分别求解,再将子问题的解合并为一个更大规模的问题的解,自底向上逐步求出原问题的解.区别:分治法是把一个大问题划分成若干个子问题,分别求解各个子问题,然后把子问题的解进行合并并得到原问题的解。
减治法同样是把一个大问题划分成若干个子问题,但是这些子问题不需要分别求解,只需求解其中的一个子问题,因而也无需对子问题的解进行合并。
计算机算法与设计复习题(含答案)

1、一个算法的优劣可以用(时间复杂度)与(空间复杂度)与来衡量。
2、回溯法在问题的解空间中,按(深度优先方式)从根结点出发搜索解空间树。
3、直接或间接地调用自身的算法称为(递归算法)。
4、 记号在算法复杂性的表示法中表示(渐进确界或紧致界)。
5、在分治法中,使子问题规模大致相等的做法是出自一种(平衡(banlancing)子问题)的思想。
6、动态规划算法适用于解(具有某种最优性质)问题。
7、贪心算法做出的选择只是(在某种意义上的局部)最优选择。
8、最优子结构性质的含义是(问题的最优解包含其子问题的最优解)。
9、回溯法按(深度优先)策略从根结点出发搜索解空间树。
10、拉斯维加斯算法找到的解一定是(正确解)。
11、按照符号O的定义O(f)+O(g)等于O(max{f(n),g(n)})。
12、二分搜索技术是运用(分治)策略的典型例子。
13、动态规划算法中,通常不同子问题的个数随问题规模呈(多项式)级增长。
14、(最优子结构性质)和(子问题重叠性质)是采用动态规划算法的两个基本要素。
15、(最优子结构性质)和(贪心选择性质)是贪心算法的基本要素。
16、(选择能产生最优解的贪心准则)是设计贪心算法的核心问题。
17、分支限界法常以(广度优先)或(以最小耗费(最大效益)优先)的方式搜索问题的解空间树。
18、贪心选择性质是指所求问题的整体最优解可以通过一系列(局部最优)的选择,即贪心选择达到。
19、按照活结点表的组织方式的不同,分支限界法包括(队列式(FIFO)分支限界法)和(优先队列式分支限界法)两种形式。
20、如果对于同一实例,蒙特卡洛算法不会给出两个不同的正确解答,则称该蒙特卡洛算法是(一致的)。
21、哈夫曼编码可利用(贪心法)算法实现。
22概率算法有数值概率算法,蒙特卡罗(Monte Carlo)算法,拉斯维加斯(Las Vegas)算法和舍伍德(Sherwood)算法23以自顶向下的方式求解最优解的有(贪心算法)24、下列算法中通常以自顶向下的方式求解最优解的是(C)。
人工智能-核心算法复习题+参考答案

人工智能-核心算法复习题+参考答案1、()控制着整个LSTM单元的状态或者记忆,它会根据每个时刻的输入进行更新。
A、隐状态向量B、状态向量C、显状态向量D、以上都不对答案:B2、以下属于生成式模型的是:()A、SVMB、随机森林C、隐马尔可夫模型HMMD、逻辑回归答案:C3、对于一个图像识别问题(在一张照片里找出一只猫),下面哪种神经网络可以更好地解决这个问题?A、循环神经网络B、感知机C、多层感知机D、卷积神经网络答案:D4、VGG-19中卷积核的大小为A、3x3B、5x5C、3x3,5x5D、不确定答案:A5、下列关于随机变量的分布函数,分布律,密度函数的理解描述不正确的是?A、离散型随机变量没有分布函数B、密度函数只能描述连续型随机变量的取值规律。
C、分布函数描述随机变量的取值规律D、分布律只能描述离散型随机变量的取值规律答案:A6、感知机描述错误的是:(___)A、感知机根据正确的程度进行权重调整;B、输入层接收外界输入信号传递给输出层;C、输出层是M-P神经元;D、感知机能容易实现逻辑与、或、非运算;答案:A7、机器学习中做特征选择时,下面方法或信息不一定有用的是A、卡方检验B、信息增益C、数据采样D、期望交叉熵答案:C8、在pytorch中,如果主机有1块TitanX显卡,以下哪个选项中的代码都可以将变量名为var的tensor放在GPU上运行A%、var=var.to"cuda:0"、var=var.to"cuda:1"B、var=var.to"cuda:1"C、var=var.cuda、var=var.to"cuda:0"D、var=var.cuda、var=var.to"cuda:1""答案:C9、Adaboost就是从()出发反复训练,在其中不断调整数据权重或者是概率分布。
算法复习题

算法复习试题一、名词解释:1、算法:就是一组有穷的规则,它规定了解决某一特定类型问题的一系列运算。
2、贪心算法:能够得到某种量度意义下的最优解的分级处理方法称为贪心算法。
3、分治法:分治法的求解思想就是把整个问题分成若干个小问题后分的治之4、递归过程:一个递归过程的执行类似于多个子程序的嵌套调用,递归过程是自己调用自己本身代码。
递归算法的特点:思路清晰,算法的描述简洁且易理解。
5、集合:在研究某一类对象时,可把这类对象的整体称为集合。
6、生成树:设G=(V,E)是一个无向连通图。
如果G的生成子图T=(V,E')是一棵树,则称T是G的一棵生成树。
7、算法具有以下5个属性:有穷性:一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。
确定性:算法中每一条指令必须有确切的含义。
不存在二义性。
只有一个入口和一个出口可行性:就是算法描述的操作是可以通过已经实现的基本运算执行有限次来实现的。
输入:一个算法有零个或多个输入,这些输入取自于某个特定对象的集合。
输出:一个算法有一个或多个输出,这些输出同输入有着某些特定关系的量。
8、迭代法:称辗转法,是一种不断用变量的旧值递推出新值的解决问题的方法。
9、贪婪法: 是一种不追求最优解,只希望得到较为满意解的方法。
贪婪法不要回溯10、动态规划:是一种将问题实例分解为更小的、相似的子问题,并存储子问题的解而避免计算重复的子问题,以解决最优化问题的算法策略。
11、分支限界法:是一种用于求解组合优化问题的排除非解的搜索算法。
12、树:树是一个或多个结点的有限集合。
12、二元树:它是结点的有限集合,它或者为空,或者由一个根和两棵树(左子树和右子树)的不相交的二元树所组成。
13、二分检索树:T是一棵二元树,它或者为空,或者其每个结点含有一个可比较大小的数据元素。
14、图:图是数据结构,一个图G是由称之为结点V和边E的两个集合组成的15、最优解:使目标函数取极值(极大值或极小值)的可行解。
算法期末复习题2

填空题:1.一个算法就是一个有穷规则的集合,其中之规则规定了解决某一特殊类型问题的一系列运算,此外,算法还应具有以下五个重要特性:确定性有穷性可行性 0个或多个输入一个或多个输出2.算法的复杂性有时间复杂性和空间复杂性之分,衡量一个算法好坏的标准是时间复杂度高低。
3.某一问题可用动态规划算法求解的显著特征是该问题具有最优子结构性质。
5.用回溯法解问题时,应明确定义问题的解空间,问题的解空间至少应包含一个(最优)解6.动态规划算法的基本思想是将待求解问题分解成若干子问题_,先求解子问题,然后从这些子问题的解得到原问题的解。
7.以深度优先方式系统搜索问题解的算法称为回溯法。
8.0-1背包问题的回溯算法所需的计算时间为o(n*2n),用动态规划算法所需的计算时间为o(min{nc,2n})。
9.动态规划算法的两个基本要素是最优子结构和重叠子问题。
10.二分搜索算法是利用动态规划法实现的算法。
11.一个算法复杂性的高低体现在计算机运行该算法所需的时间和存储器资源上,因此算法的复杂性有时间复杂性和空间复杂性之分。
12.出自于“平衡子问题”的思想,通常分治法在分割原问题,形成若干子问题时,这些子问题的规模都大致相同。
13.动态规划算法有一个变形方法备忘录方法。
这种方法不同于动态规划算法“自底向上”的填充方向,而是“自顶向下”的递归方向,为每个解过的子问题建立了备忘录以备需要时查看,同样也可避免相同子问题的重复求解。
14、这种不断回头寻找目标的方法称为回溯法。
15、直接或间接地调用自身的算法称为递归算法。
16、 记号在算法复杂性的表示法中表示渐进确界或紧致界。
17、由分治法产生的子问题往往是原问题的较小模式,这就为使用递归技术提供了方便。
18、建立计算模型的目的是为了使问题的计算复杂性分析有一个共同的客观尺度。
19、下列各步骤的先后顺序是②③④①。
①调试程序②分析问题③设计算法④编写程序。
20、最优子结构性质的含义是问题的最优解包含其子问题的最优解。
算法分析复习题

算法分析复习题⼀、单项选择题:1、算法的五⼤特征是确定性、有穷性、输⼊、输出和可⾏性。
其输⼊⾄少是( A )个。
A、0B、1C、n D、-12、⼤整数的乘法是利⽤的算法( C )。
A、贪⼼法B、动态规划法C、分治策略D、回溯法3、采⽤贪⼼算法的最优装载问题的主要计算量在于将集装箱依其重量从⼩到⼤排序,故算法的时间复杂度为( B )。
A、O(n2n)B、O(nlogn)C、O(2n)D、O(n)4、⼀个问题可⽤动态规划算法或贪⼼算法求解的关键特征是问题的( B )。
A、重叠⼦问题B、最优⼦结构性质C、贪⼼选择性质D、定义最优解5、设⼀个算法的输⼊规模为n,Dn是所有输⼊的集合,任⼀输⼊I∈Dn,P(I)是I出现的概率,有=1,T(I)是算法在输⼊I下所执⾏的基本语句次数,则该算法的平均执⾏时间为(D)。
A、B、C、D、6、把递归算法转化为⾮递归算法有如下两种基本⽅法:(1)直接⽤循环结构的算法替代递归算法。
(2)⽤( A )模拟系统的运⾏过程,通过分析只保存必须保存的信息,从⽽⽤⾮递归算法替代递归算法。
A、栈B、队列C、顺序表D、链表7、算法分析中,记号表⽰(A)。
A、渐进下界B、渐进上界C、⾮紧上界D、紧渐进界9、贪⼼算法与动态规划算法的主要区别是(B )。
A、最优⼦结构B、贪⼼选择性质C、构造最优解D、定义最优解10、回溯法在问题的解空间树中,按(D)策略,从根结点出发搜索解空间树。
A、⼴度优先B、活结点优先C、扩展结点优先D、深度优先11. 回溯法的问题的解空间树是(B),并不需要在算法运⾏时构造⼀棵真正的树结构,然后再在该解空间树中搜索问题的解,⽽是只存储从根结点到当前结点的路径。
A、顺序⽅式的⼆叉树B、虚拟的树C、满⼆叉树D、完全⼆叉树12. 应⽤回溯法求解问题时,⾸先应该明确问题的解空间。
解空间中满⾜约束条件的决策序列称为(C)。
A、最优解B、局部最优解C、可⾏解D、最优⼦序列解13. ⼀个问题的最优解包含其⼦问题的最优解,则称此问题具有(D)性质。
算法复习题(精炼版)

填空题动态规划算法的基本要素为:最优子结构性质与重叠子问题性质1)算法分析中,记号O表示渐进上界,记号Ω表示渐进下界,记号Θ表示紧渐进界。
2)回溯法在问题的解空间树中,按深度优先策略,从根结点出发搜索解空间树。
3)分支限界法在问题的解空间树中,按广度优先策略,从根结点出发搜索解空间树。
所谓贪心选择性质是指(所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到)。
所谓最优子结构性质是指(问题的最优解包含了其子问题的最优解)。
回溯法是指(具有限界函数的深度优先生成法)。
回溯法的算法框架按照问题的解空间一般分为(子集树)算法框架与(排列树)算法框架。
4)二分搜索算法是利用分治策略实现的算法。
5)衡量一个算法好坏的标准是时间复杂度低6)最长公共子序列算法利用的算法是动态规划法7)Strassen矩阵乘法是利用分治策略实现的算法8)回溯法搜索状态空间树是按照深度优先遍历的顺序。
9)算法中通常以自底向下的方式求解最优解的是动态规划法10)背包问题的贪心算法所需的计算时间为O(nlogn)11)0-1背包问题的回溯算法所需的计算时间为O(n2n)12)用动态规划算法解决最大字段和问题,其时间复杂性为n13)一个算法就是一个有穷规则的集合,其中之规则规定了解决某一特殊类型问题的一系列运算,此外,算法还应具有以下五个重要特性:_有穷性,确定性,可行性,输入,输出。
1.算法的复杂性有时间复杂性和空间复杂性之分。
2、程序是算法用某种程序设计语言的具体实现。
3、算法的“确定性”指的是组成算法的每条指令是清晰的,无歧义的。
4.矩阵连乘问题的算法可由动态规划设计实现。
6、算法是指解决问题的一种方法或一个过程。
7、从分治法的一般设计模式可以看出,用它设计出的程序一般是递归算法。
8、问题的最优子结构性质是该问题可用动态规划算法或贪心算法求解的关键特征。
9、以深度优先方式系统搜索问题解的算法称为回溯法。
10、数值概率算法常用于数值问题的求解。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、选择题
1. 通俗地讲,算法是指解决问题的一种方法或一个过程,描述算法的方式有很多,如()。
A、自然语言方式
B、表格方式
C、程序设计语言
D、程序设计语言与自然语言相结合
算法的描述方式(常用的)
算法描述自然语言
流程图特定的表示算法的图形符号
伪语言包括程序设计语言的三大基本结构及自然语言的一种语言
类语言类似高级语言的语言,例如,类PASCAL、类C语言
2.算法的复杂性依赖于()。
A、要解决问题的规模
B、算法的输入
C、算法本身的函数
D、设计者的学术水平
3. 以下描述是有关算法设计的基本步骤:
①问题的陈述②算法分析③模型的拟制④算法的实现
⑤算法的详细设计⑥文档的编制,应与其它环节交织在一起
其中正确的顺序是()。
A、①②③④⑤⑥
B、①③⑤②④⑥
C、②④①③⑤⑥
D、⑥①③⑤②④
4.对于含n个元素的子集树问题,最坏情况下解空间的叶结点数目为()。
A、n!
B、2^n
C、2n+1-1
D、
1!/!
n
i
n i =
∑
5. 对于给定的问题,考虑算法复杂性的意义在于()。
A、设计出复杂性尽可能低的算法
B、若该问题已有多种算法时,选择其中复杂性低的求解问题
C、提高算法设计的学术水平层次
D、判断算法的正确性
6.符号Ω在算法复杂度描述中表示()。
A、紧渐近上界
B、渐近上界
C、紧渐近下界
D、渐近下界
7. 设()f n 、()g n 是定义在正数集上的正函数,如果存在正的常数C 和自然数0n ,使得当0n n ≥时有()()f n Cg n ≤,则称函数()f n 当n 充分大时有上界()g n ,记作
()(())f n O g n =,即()f n 的阶( )()g n 的阶。
A 、不高于
B 、不低于
C 、等价于
D 、逼近
8. 回溯法在解空间树T 上的搜索方式是( )。
A 、深度优先 B 、广度优先
C 、最小耗费优先
D 、活结点优先
9. 下面关于动态规划和备忘录方法的叙述中正确的是( )。
A 、备忘录方法是自顶向下的递归方式
B 、动态规划自底向上的,其最优值的计算不能递归定义
C 、当一个问题的所有子问题都至少需要求解一次时,用动态规划方法较好
D 、当子问题空间的部分子问题可不必求解时,用备忘录方法则较有利
10.一个四城市的旅行售货员问题,其解空间的深度为( )。
A 、3
B 、4
C 、5
D 、6
11. 分支限界法与回溯法都是在问题的解空间树上搜索问题的解,二者( )。
A 、求解目标不同,搜索方式相同 B 、求解目标不同,搜索方式也不同 C 、求解目标相同,搜索方式不同
D 、求解目标相同,搜索方式也相同
12. 下列哪些问题不可以用贪心算法求得最优解( )。
A 、哈夫曼编码 B 、活动安排问题
C 、0-1背包问题
D 、单源最短路径
13. 在对问题的解空间树进行搜索的方法中,一个活结点最多有一次机会成为活结点的是( )。
A 、回溯法
B 、分支限界法
C 、回溯法和分支限界法
D 、回溯法求解子集树问题
14.分支限界法在解空间树T 上的一种搜索方式是( )。
A 、深度优先 B 、广度优先 C 、活结点优先 D 、长度优先
15. 以下关于判定问题难易处理的叙述中正确的是( )。
A 、可以由多项式时间算法求解的问题是难处理的
B 、需要超过多项式时间算法求解的问题是易处理的
C 、可以由多项式时间算法求解的问题是易处理的
D 、需要超过多项式时间算法求解的问题是不能处理的
二、填空题
1. 如果存在正的常数C 和0N ,使得当 N ≥N0 时,有()()f N Cg N ≤,则称函数
()f N 当N 充分大时上有界,且()g N 是它的一个上界,记为 f(N)=O(g(N)) 。
这时还
说明()f N 的阶不 (高于/低于)()g N 的阶。
2.在循环赛日程表问题中,若给定的运动员数n=2^(k-1),则至少需要__n ___天完成比赛;n=2^k 时,则需要__n-1___天。
其中,k 为正整数。
3. 按照符号O 的定义,如果()(())g N O f N =,则()()O f O g += O(f) 。
4. 算法是由若干条指令组成的有序序列,并且具有输入、 输出 、 确定性 和有限性的性质。
5.一个直接或间接地调用自身的算法称为___递归_____,它有两个条件,一个是要直接或间接地调用自身,另一个是必须有_初始条件或非递归定义的初始值_。
6. 一个问题能够用分治法求解,说明该问题:①可以分解为规模比较小的问题且容易解决,②该问题具有 最优子结构 性质,③分解后的子问题的解可以合并为原问题的解,④分解后的各个子问题是相互 独立 的。
7. 运用动态规划法的一般步骤是:①分析最优解,②定义 建立递归关系 ,③求最优值,④构造最优解。
8. 四个物品的0-1背包问题的解空间层数为 5 ,共有 8(2^n )个叶结点。
共有 31([2^(n+1)]-1)个结点
9. 对解空间的搜索过程中如果运用回溯法一个中间结点有 (一次/多次)机会称为扩展结点,若使用分支限界法则有 (一次/多次)机会。
❤❤用分支限界法求解0-1背包问题时,对于每个物品j 有重量wj 和价值vj ,考虑当前物品i ,已装入背包中物品的重量和价值分别为cw 、cv ,剩余物品的价值上界为urv ,剩余容量为c ,目前已有的最优价值为bestp ,则当左儿子满足约束条件 属于可行结点时,就将它加入活结点队列中;当右儿子满足上界条件 时才将它加入活结点队列中。
10.在使用回溯法考虑求解一个具体问题时,往往需要设计出约束条件和限界条件。
装
载问题的约束条件是__
∑=≤k
i i
i C w
x 1
__;限界条件是bestw>cw+r ,其中,bestw 是当前最优
值,cw=__当前最优载重量_∑=k
i i
i c
x 1
__,r=___剩余集装箱重量__
∑+=n
k i i
w
1
_。
三、证明题
1.证明哈夫曼编码的贪心选择性质。
2.试证明活动安排问题的贪心选择性质。
3.试证明最长公共子序列问题具有最优子结构性质。
四、求下列各式时间复杂度
1.写出函数2
10log 3n n +的渐近表达式。
O(n^2)
2.
写出函数2
log n n 的渐近表达式。
3.写出函数23/42n
n +的渐近表达式。
O(2^n)
4.求1
275()(/5)(3/4)
75
C n T n C n T n T n n <⎧⎪=⎨
++≥⎪⎩的渐近表达式(1C ,2C 为常数)。
5.写出函数21log 1032413n
n n ⎛⎫
++ ⎪⎝⎭
的渐近表达式。
五、应用题
1.有0-1背包问题如下:n=4,c=20,P=(11,8,15,18),W=(5,4,4,8)。
试画出用回溯法求解时的搜索情况。
(本题6分) 解:
① n=4,c=20,P=(11,8,15,18),W=(5,4,4,8) ②
2.请用快速排序法升序排序下面实例,给出每一趟排序的结果。
(3,20,5,9,2,30,25,18,16,3)
解:
2 3 3 9 5 30 25 18 16 20
2 3 ↑ 5 9 30 25 18 16 20 ↑ 20 25 18 16 30 18 16 20 25 ↑ 16 18 ↑
结果: 2 3 3 5 9 16 18 20 25 30
3.画出下面字符表的哈夫曼编码对应的二叉树。
解:课本P110 至底向上
4.印刷电路板将布线区域分为方格阵列,如下图所示。
电路布线问题要求确定连接方格a的中点到方格b的中点的最短布线方案,布线时,电路只能沿直线或直角布线,已经布了线的方格做了封锁标记,其他线路不允许穿过被封锁的方格。
用队列式分支限界法解该问题,在下图上标记出求解过程中各个方格的标记距离和最短布线路径。
5.算法设计。
说明:任意选择所使用的算法策略;从下面两个题目中任意选择其中之一;
要求:说明所使用的算法策略;写出算法实现的核心部分。
(1)背包问题;(2)哈夫曼编码问题;(3)n后问题。