摘要:
你对回溯算法的理解 请说明“子集和”问题的解空间结构和约束函数 请说明在本章学习过程中遇到的问题及结对编程的情况 回溯算法的理解 回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向 阅读全文
摘要:
你对贪心算法的理解 请说明汽车加油问题的贪心选择性质 请说明在本章学习过程中遇到的问题及结对编程的情况 对贪心算法的理解 贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。 贪心算法不是对所有问题都能 阅读全文
摘要:
1.实践题目: 4-2 删数问题 (110 分) 2.问题描述: 给定n位正整数a,去掉其中任意k≤n 个数字后,剩下的数字按原次序排列组成一个新 的正整数。对于给定的n位正整数a和正整数 k,设计一个算法找出剩下数字组成的新数最 小的删数方案。 4-2 删数问题 (110 分) 给定n位正整数a, 阅读全文
摘要:
0-1背包 Description 给定n(n<=100)种物品和一个背包。物品i的重量是wi,价值为vi,背包的容量为C(C<=1000)。问:应如何选择装入背包中的物品,使得装入背包中物品的总价值最大? 在选择装入背包的物品时,对每种物品i只有两个选择:装入或不装入。不能将物品i装入多次,也不能 阅读全文
摘要:
动态规划的一个计算两个序列的最长公共子序列的方法如下: [1] 以两个序列 X、Y 为例子: 设有二维数组f[i,j] 表示 X 的 i 位和 Y 的 j 位之前的最长公共子序列的长度, 则有: f[1][1] = same(1,1); f[i,j] = max{f[i-1][j -1] + sam 阅读全文
摘要:
设计一个平均时间为O(n)的算法,在n(1<=n<=1000)个无序的整数中找出第k小的数。 提示:函数int partition(int a[],int left,int right)的功能是根据a[left]~a[right]中的某个元素x(如a[left])对a[left]~a[right]进 阅读全文
摘要:
炮兵布阵 问题描述 司令部的将军们打算在NM的网格地图上部署他们的炮兵部队。一个NM的地图由N行M列组成,地图的每一格可能是山地(用”H” 表示),也可能是平原(用”P”表示),如下图。在每一格平原地形上最多可以布置一支炮兵部队(山地上不能够部署炮兵部队);一支炮兵部队在地图上的攻击范围如图中黑色区 阅读全文
摘要:
这题突破口在题目设置 “并规定路径都是单向的,且保证都是小序号地窖指向大序号地窖” ,那么最大的那个地窖不指向任何地窖,则可以固定最大号的那个地窖的d,从大往小递推。 设d[i]为从i号地窖开始挖最大的地雷数,默认值为a[i] 令a[i] 为第i号地窖的地雷数 递归方程 : d[i] = max { 阅读全文
摘要:
1. 你对动态规划算法的理解(2分) 我对动态规划的理解是: 当前问题能根据之前的求解过的问题进行求解,或者是,一个问题的解依赖于若干个以前的求解过的子问题。 与分治的区别是,分治将问题分成若干子问题进行处理后合并,问题与问题间没有像动态规划那样有很强的依赖关系,分治法更多的是独立求解再合并的思想; 阅读全文
摘要:
实践报告任选一题进行分析。内容包括: 1.实践题目 7-3 编辑距离问题 (30 分) 2.问题描述 设A和B是2个字符串。要用最少的字符操作将字符串A转换为字符串B。这里所说的字符操作包括 (1)删除一个字符; (2)插入一个字符; (3)将一个字符改为另一个字符。 将字符串A变换为字符串B所用的 阅读全文