摘要: 1.实践问题:工作分配问题 2.问题描述:设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为cij 。 设计一个算法,对于给定的工作费用,为每一个人都分配1 件不同的工作,并使总费用达到最小。 3.算法描述: 解空间为排列树。 #代码: 4.心得体会:对回溯法以及剪枝函数了解不够透彻,自己 阅读全文
posted @ 2018-12-21 14:56 速滑 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 你对回溯算法的理解:回溯法可以系统的搜索一个问题的所有解或者任一解。在解空间中,按深度优先策略,从根节点出发搜索解空间树。适用于组合数较大的问题。 请说明“子集和”问题的解空间结构和约束函数: 约束函数:用于扩展节点处剪去不满足约束的子树,可以提高算法的效率。插入代码如下: 请说明在本章学习过程中遇 阅读全文
posted @ 2018-12-20 20:48 速滑 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 你对回溯算法的理解:回溯法可以系统的搜索一个问题的所有解或者任一解。在解空间中,按深度优先策略,从根节点出发搜索解空间树。适用于组合数较大的问题。 请说明“子集和”问题的解空间结构和约束函数:当给定的问题是从n个元素的集合S中找出满足某种性质的子集时,相应的解空间树称为子集树。解空间:问题的解空间至 阅读全文
posted @ 2018-12-20 17:50 速滑 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 1.实践题目:最小删数问题 2.问题描述:给定n位正整数a,去掉其中任意k≤n 个数字后,剩下的数字按原次序排列组成一个新 的正整数。对于给定的n位正整数a和正整数 k,设计一个算法找出剩下数字组成的新数最 小的删数方案。 3.算法描述: 4.算法时间和空间复杂度分析:代码中只用了一个数组来储存字符 阅读全文
posted @ 2018-11-30 16:15 速滑 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 1.对贪心算法的理解:贪心算法能从目前的情况下做出最好的选择。即贪心算法并不从整体最优上加以考虑,它所做出的选择只是唉某种意义上的局部最好的选择。即使贪心算法不能得到整体最优解,但其最终结果却是最优解的很好近似解。 2.说明汽车加油问题的贪心选择性质:由于不知道在哪个加油站加油可以使汽车行驶到终点而 阅读全文
posted @ 2018-11-30 15:37 速滑 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 实践题目:求经过数字三角形的最大和 问题描述:从三角形的顶端往下走,求经过数字之和最大的一条路径。 算法描述:把第0行第0列的值全都赋值为零,这样三角形的数a[i][j]就都可以用统一的式子表示了,最后在第n行的时候经过比较得到答案。 算法时间及空间复杂度分析:算法中使用了双重循环,所以该算法的时间 阅读全文
posted @ 2018-11-11 20:36 速滑 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 动态规划的思想是把待求解的问题分解成若干个子问题,先求解子问题,然后从子问题的解得到原问题的解。动态规划经分解得到的子问题往往不是互相独立的。动态规划每次求解的值会被记录下来,不用 重复计算同一个值,提高了算法的效率。 阅读全文
posted @ 2018-11-06 19:33 速滑 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 输入数组和要查找的数x #include <iostream> using namespace std; int a[1009]; int main(){ int n;cin>>n; for(int i=0;i<n;i++){ cin>>a[i]; } int x;cin>>x; int cnt=0 阅读全文
posted @ 2018-10-21 10:15 速滑 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 二分法通过缩小问题规模的一半来解决问题,极大的提高了解决问题的效率。结对编程可以通过两人合作的方法来找出自己的不足,同时也可以学到别人编程的长处。 阅读全文
posted @ 2018-10-14 23:46 速滑 阅读(135) 评论(0) 推荐(0) 编辑