摘要: 你对回溯算法的理解 回溯法,通过深度优先策略,从根结点搜索一个问题的所有解得出答案。回溯法在求问题的解时,要回溯到根,且把所有子树都搜索遍才会结束,当然有些子树不满足条件什么的,就被“剪枝”剪掉了。 请说明“子集和”问题的解空间结构和约束函数 #include<iostream> using nam 阅读全文
posted @ 2018-12-22 22:07 GYRY 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 实践题目: 工作分配问题 问题描述: 设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为cij 。 设计一个算法,对于给定的工作费用,为每一个人都分配1 件不同的工作,并使总费用达到最小。 输入格式: 输入数据的第一行有1 个正整数n (1≤n≤20)。接下来的n行,每行n个数,表示工作费 阅读全文
posted @ 2018-12-20 00:42 GYRY 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 问题与问题描述: 给定k 个排好序的序列, 用 2 路合并算法将这k 个序列合并成一个序列。 假设所采用的 2 路合并算法合并 2 个长度分别为m和n的序列需要m+n-1 次比较。试设 计一个算法确定合并这个序列的最优合并顺序,使所需的总比较次数最少。 为了进行比较,还需要确定合并这个序列的最差合并 阅读全文
posted @ 2018-12-02 19:43 GYRY 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 你对贪心算法的理解 贪心算法,我个人觉得贪心算法是不断分析当前条件下的最优解,得到整体的最优解。贪心法肯定不是什么时候都能拿到最优解的,所以,有时候要去验证,用反证法比较好证明。但是,贪心法相对来讲简单一点。 请说明汽车加油问题的贪心选择性质 我的理解是,每到达一站,都考虑目前的油量是否满足下一段路 阅读全文
posted @ 2018-12-02 19:32 GYRY 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 实践报告任选一题进行分析。内容包括: 实践题目: 数字三角形 问题描述: 给定一个由 n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形 的顶至底的一条路径(每一步可沿左斜线向下或右斜线向下),使该路径经过的数字总和最大。 输入格式: 输入有n+1行: 第 1 行是数字三角形的行数 阅读全文
posted @ 2018-11-11 19:01 GYRY 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 你对动态规划算法的理解 动态规划其实与分治法相似,区别在于子问题重叠上,如何避免因子问题重叠而产生的大量无效的运算。对此,一般我们都是整个表来填,根据表还查看已经计算过的子问题结果就可以了。填表是门学问,当然对于我来说,找出最优解的性质也很难。动态规划一般用递归来做省力,所以可以不用动态规划的时候尽 阅读全文
posted @ 2018-11-11 18:40 GYRY 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 题目:第二章上机实验第三题:求两个升序序列合并后的序列的中位数。 问题具体:输入序列的长度N,再输入两行N个数的升序数列,将两个数列合并,求最终数列的中位数。这个问题其实就是一个归并的常见问题,不过不需要真的去排好序,只要排到数列的中位数就好了。 算法的思路是:利用归并思想,用i,j分别从两个数列的 阅读全文
posted @ 2018-10-14 14:05 GYRY 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 对于二分法,个人感觉可以用到很多方面上,比如 1: 二分搜索,如果说是有序的,直接对半分比较就可以了,如果说是无序的,像找第几小的数字这种题目结合快排思想,找数组中任意数a(最方便的应该是第一个或最后一个)当做标杆,让数组其他数字比较大小分成两块,比较可以得出a是第几小的,之后再根据需要舍弃该舍弃的 阅读全文
posted @ 2018-10-13 13:35 GYRY 阅读(134) 评论(0) 推荐(0) 编辑