摘要: 1.实践题目 :工作分配问题 2.问题描述设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为cij 。 设计一个算法,对于给定的工作费用,为每一个人都分配1 件不同的工作,并使总费用达到最小。3.算法描述(包括解空间,画出测试样例的解空间树,剪枝(约束函数或限界函数)方法描述)解空间(10 阅读全文
posted @ 2018-12-23 14:24 ppplllk 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 1.你对回溯算法的理解(2分)从一条路径走,如果能满足条件,就继续向前,否则退后,往另一条路,不断重复这个过程,最后的得出解。并在选择路径时加入限制条件来剪枝,提高效率。2.请说明“子集和”问题的解空间结构和约束函数(2分)用二叉树,一边是放入数组,一边是不放入数组。约束:判断要加入的数是否比目标和 阅读全文
posted @ 2018-12-23 14:05 ppplllk 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 贪心算法总是做出在当前看来最好的选择,但并不一定是整体上最好的。也就是他做出的是局部最优解。 目的是以最少的加油次数走完全程,所以选择的原则是能不加油就不加油,尽可能利用完每一次的邮箱储备。 在贪心选择时总是抓不到该贪的点,没有抓住根本的问题。经过大半个学期,我觉得结对编程总体来说是有帮助的,共同思 阅读全文
posted @ 2018-12-02 23:35 ppplllk 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 1.实践题目数字三角形 2.问题描述给定一个由 n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形 的顶至底的一条路径(每一步可沿左斜线向下或右斜线向下),使该路径经过的数字总和最大。 3.算法描述递归式为:b[i][j]=max(b[i+1][j]+a[i][j],b[i+1][j 阅读全文
posted @ 2018-11-04 22:00 ppplllk 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 1.你对动态规划算法的理解(2分)动态规划算法与分治法的基本思想大体类似。就是将问题分解为若干个子问题,再按顺序求解子问题。前一子问题的解记录下来,用来解决后一子问题,不断以此类推。在求解子问题时,通过决策来保留最优解。最终子问题的解就是初始问题的解。2.分别列出编程题1、2的递归方程(2分)第一题 阅读全文
posted @ 2018-11-04 21:14 ppplllk 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 1.实践题目 二分查找 2.问题描述 输入n值(1<=n<=1000)、n个非降序排列的整数以及要查找的数x,使用二分查找算法查找x,输出x所在的下标(0~n-1)及比较次数。若x不存在,输出-1和比较次数。 输入格式: 输入共三行: 第一行是n值; 第二行是n个整数; 第三行是x值。 输出格式: 阅读全文
posted @ 2018-10-14 21:21 ppplllk 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 1.请谈一下你对二分法思想的体会 二分法的应用面非常广,是分治法的其中一种具体方法。字面上看很容易理解,就是通过不断的对分来缩小问题规模,但实际操作起来却不是想象中的那么简单。这种方法是很重要的,效率很高,但要熟练运用还是得靠不断的练习。在做题中经常会在边界问题搞不清楚,搞错临界值,或漏了情况。 2 阅读全文
posted @ 2018-10-14 20:52 ppplllk 阅读(128) 评论(0) 推荐(0) 编辑