2018年12月22日

摘要: 问题描述:n件工作分配给n个工人,所以每个工人必须做不同的工作。由于每个工人做对应的n份工作的工钱不同,所以总费用情况不一样,在这里要用到回溯的搜索办法来求解最小花费。 算法描述(包括解空间,画出测试样例的解空间树,剪枝(约束函数或限界函数)方法描述) 解空间 是 n!;由于每个工人选择的工作必须不 阅读全文
posted @ 2018-12-22 15:26 suanfasfather 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 1.你对回溯算法的理解(2分) 在我看来回溯法实际上就有点类似遍历算法,可以搜索到一个问题的所有解,是一种系统性带跳跃的搜索算法,由于大部分回溯法具备剪枝,所以它也不等同于传统的遍历搜索。 2.请说明“子集和”问题的解空间结构和约束函数(2分) 由于是选择子集,所以从整体解空间来看的话,解空间为n! 阅读全文
posted @ 2018-12-22 15:01 suanfasfather 阅读(102) 评论(0) 推荐(0) 编辑

2018年11月28日

摘要: 1.选择第二题进行分析。 给定n位正整数a,去掉其中任意k≤n 个数字后,剩下的数字按原次序排列组成一个新 的正整数。对于给定的n位正整数a和正整数 k,设计一个算法找出剩下数字组成的新数最 小的删数方案。 输入 #include<string>#include<iostream>using nam 阅读全文
posted @ 2018-11-28 19:50 suanfasfather 阅读(97) 评论(1) 推荐(0) 编辑
摘要: 1.对于贪心算法的理解: 贪心算法通常是自顶向下的方式进行,以迭代的方式作出相继的贪心选择,每做一次贪心选择就将所求问题简化为规模更小的子问题。通俗的讲就是不断求局部的最优解,最终得到全局的最优解。 2.汽车加油问题的贪心选择性质: for(int i=0,sum = 0;i<=k;i++){ su 阅读全文
posted @ 2018-11-28 19:39 suanfasfather 阅读(114) 评论(0) 推荐(0) 编辑

2018年11月4日

摘要: 实践报告任选一题进行分析。内容包括: 1.实践题目:给定一个由 n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形 的顶至底的一条路径(每一步可沿左斜线向下或右斜线向下),使该路径经过的数字总和最大。 2.问题描述:根据题目我们可以大致画出动态规划的一个表,大致可以用一个“下三角”的 阅读全文
posted @ 2018-11-04 15:54 suanfasfather 阅读(120) 评论(0) 推荐(0) 编辑

2018年10月29日

摘要: 1.动态规划:我觉得动态规划是一种比一般递归好一点的方法,如果递归的函数有n个参数那个就对应n维的数组。他通过把原问题分解为很多子问题,在确定各个子问题的最优解之和得出最终的最优解。并且解子问题的时候还要进行一些“记忆”。 DP还要针对特定的题目比如 1) 问题具有最优子结构性质。如果问题的最优解所 阅读全文
posted @ 2018-10-29 19:13 suanfasfather 阅读(108) 评论(0) 推荐(0) 编辑

2018年10月14日

摘要: 我认为二分法的基本思想:假设数据是按非降序排序的,对于给定值x,从序列的中间位置开始比较,如果当前位置值等于x,则查找成功;若x小于当前位置值,则在数列的前半段中查找;若x大于当前位置值则在数列的后半段中继续查找,直到找到为止。个人觉得这种方法体现了“逼近”思想,通过不断地划分,不断的靠近问题的答案 阅读全文
posted @ 2018-10-14 12:44 suanfasfather 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 问题描述:就是使用二分搜索的算法,每次进行折半查找,直到最后查到所需查找的值x为止。 算法描述:二分搜索:基本思想是将n个元素分成个数大致相同的两半,取a【n/2】与x作比较。如果x=a【n/2】,则找到x,算法终止;如果x<a[n/2],则只在数组a的左半部分继续搜索x;如果x>a【n/2】,则只 阅读全文
posted @ 2018-10-14 12:21 suanfasfather 阅读(90) 评论(0) 推荐(0) 编辑

导航