摘要: 一、实践题目:工作分配问题 二、问题描述: 将现有的 n 件工作分配给 n 个人。已知将工作 i 分配给第 j 个人所需的费用为 cij 。对于给定的工作费用,为每一个人分配一件不同的工作,并使总费用达到最小。可将问题转化为找到一个排列,使得 cij 的和最小,即排列树问题。 三、算法描述: ①解空 阅读全文
posted @ 2018-12-21 00:19 晓风长路 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 一、对回溯算法的理解 我认为回溯算法其实是一种近似于“试探”的过程,它根据一个树形的结构,进行一层层的试探,最终得到想要的结果。在每一次的递归中,当出现符合条件的答案时,便保存当前的状态,进入下一层的计算;否则,返回上一层,进行下一步的计算。所以在回溯算法中必须给出限界函数,否则递归便不会终止。 二 阅读全文
posted @ 2018-12-20 23:16 晓风长路 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 一、实践题目:删数问题 二、问题描述: 给定一个n位的正整数a,去掉其中任意k(k≤n) 个数字后,剩下的数字按照原次序排列成一个的新的正整数。在给定的n位正整数a和正整数k的情况下,输出完成该操作后剩下的正整数。 三、算法描述: 正整数的位数不定,用long long去存不一定存的下,所以用一个字 阅读全文
posted @ 2018-12-01 11:49 晓风长路 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 一、对贪心算法的理解 概念:贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。 性质:贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过 阅读全文
posted @ 2018-12-01 11:13 晓风长路 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 1. 实践题目: 编辑距离问题 2. 问题描述 给出两个字符串A和B,要用最少的字符操作将字符串A转换为字符串B。字符操作包括: (1)删除一个字符; (2)插入一个字符; (3)将一个字符改为另一个字符。编辑距离即将字符串A变换为字符串B所用的最少字符操作数,可记为d(A,B),求出给出的两个字符 阅读全文
posted @ 2018-11-05 11:52 晓风长路 阅读(162) 评论(1) 推荐(0) 编辑
摘要: 一、对动态规划算法的理解 动态规划算法可以将该问题的规模细分为若干个子问题,并取子问题的最优解,逐渐将规模放大到现有,直到可从递归的出口得出最终的答案。 二、两道编程题的递归方程 7-1:dp[i]表示前i个数字在包含a[i]a[i]情况下的最长上升子序列的长度; 7-2:dp[i]表示当前租金的最 阅读全文
posted @ 2018-10-28 22:33 晓风长路 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 1.实践题目:两个有序序列的中位数 2.问题描述: 输入一个n(0<N<=1e5),代表两个有序序列的长度,随后两行分别键入两个非降序序列,求出两个序列的合并后的中位数,此处中位数指有序序列中的第(N+1)/2个数,下标从0开始。 3.算法描述: 创建两个数组a,b用来保存两个有序序列,设定四个下标 阅读全文
posted @ 2018-10-21 13:13 晓风长路 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 第一、二周的算法课主要讲授了以下内容: 递归:直接或间接地调用自身的算法称为递归算法,亦称函数自身的嵌套调用。 典型的例子:求解斐波那契数列,汉诺塔问题,整数划分问题等。递归较难理解,但实行起来相对而言比较简洁明了,但递归的空间开销往往非常大,即空间复杂度较高,运行时间可能会比较长。 分治法:将一个 阅读全文
posted @ 2018-10-14 20:34 晓风长路 阅读(286) 评论(0) 推荐(0) 编辑