2018年12月27日

摘要: 给定n(n<=100)种物品和一个背包。物品i的重量是wi,价值为vi,背包的容量为C(C<=1000)。问:应如何选择装入背包中的物品,使得装入背包中物品的总价值最大? 在选择装入背包的物品时,对每种物品i只有两个选择:装入或不装入。不能将物品i装入多次,也不能只装入部分物品i。 输入格式: 共有 阅读全文
posted @ 2018-12-27 16:30 赖锐杰 阅读(291) 评论(0) 推荐(0)

2018年12月20日

摘要: 基本思想: 构建问题的解空间树,在其解空间树中,从根节点出发,进行深度优先搜索。在搜索过程中,对解空间 树的每个结点进行判断,判断该结点是否包含问题的解,若肯定不包含,则跳过对以该结点为根的子树的 搜索,逐层向其祖先结点回溯。否则,则进入该子树,继续按深度优先策略搜索。 回溯法的精髓在于剪枝,常用限 阅读全文
posted @ 2018-12-20 19:41 赖锐杰 阅读(144) 评论(0) 推荐(0)
摘要: 这道题就是旅行售货员问题的同类 第一个判断条件是访问到最后一个人时与当前最优解进行比较 第二个是如果当前解大于当前最优解则不需要继续访问,可以减少时间(做的时候是>号,发现>=可能更好) 第三个判断当前任务是否被分配。 第n层表示第n个人的选择 回溯法的精髓在于剪枝,那就需要约束函数或限界函数去实现 阅读全文
posted @ 2018-12-20 19:02 赖锐杰 阅读(106) 评论(0) 推荐(0)

2018年12月2日

摘要: 1、 贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。出发点和上一章的动态规划是一样的,但是实现方法不同,贪心算法也不一定得出整体最优解。如何区别他们,背包问题和0-1背包问题能够很好的区分。多用于这种局部可拆分 阅读全文
posted @ 2018-12-02 18:28 赖锐杰 阅读(84) 评论(0) 推荐(0)
摘要: 1、 程序存储问题 2、 设有n 个程序{1,2,…, n }要存放在长度为L的磁带上。程序i存放在磁带上的长度是 li,1≤i≤n。 程序存储问题要求确定这n 个程序在磁带上的一个存储方案, 使得能够在磁带上存储尽可能多的程序。 对于给定的n个程序存放在磁带上的长度,计算磁带上最多可以存储的程序数 阅读全文
posted @ 2018-12-02 18:15 赖锐杰 阅读(108) 评论(0) 推荐(0)

2018年11月2日

摘要: 1、 对动态规划算法的理解:动态规划就是将一个大问题变成一个个子问题再去解决,而每个子问题都是互相有联系的,不像二分法是独立存在的。而这些子问题都可以通过递归或者多重循环来解决,最终得出最终答案。无论是矩阵连乘问题,背包问题,还是我们实践中的三道实验题目,都是通过子问题来得出。我觉得三角形那个是最典 阅读全文
posted @ 2018-11-02 13:07 赖锐杰 阅读(90) 评论(0) 推荐(0)
摘要: 1、 实践题目:最大子段和 2、 问题描述:给定n个整数(可能为负数)组成的序列a[1]a[2]……a[n],求该序列如a[i]+a[i+1]……a[j]的子段和最大值。当所给的整数均为负数时,定义子段和为0.要求算法时间复杂度为O(n)。 3、 算法描述:最大子段和化为子问题,两个相邻的数字在相加 阅读全文
posted @ 2018-11-02 12:52 赖锐杰 阅读(125) 评论(0) 推荐(0)

2018年10月14日

摘要: 1、 实践题目 改写二分搜索算法(第二题) 2、 问题描述 设a[0:n-1]是已排好序的数组,请改写二分搜索算法,使得当x不在数组中时,返回小于x的最大元素位置i和大于x的最小元素位置j。当搜索元素在数组中时,i和j相同,均为x在数组中的位置。 3、 算法描述 先按照要求创建一个数组,再输入数值。 阅读全文
posted @ 2018-10-14 23:24 赖锐杰 阅读(92) 评论(0) 推荐(0)

2018年10月13日

摘要: 1、 请谈一下你对二分法思想的体会 (1) 时间复杂度为O(logn),数据量大的时候用二分法能够节约时间,而且构建代码框架的时候也比较明了清晰。 (2) 个人理解二分法的内容是将一个问题分成两部分,变成两个小问题来处理。Array[left]、array[right]、array[middle]是 阅读全文
posted @ 2018-10-13 11:29 赖锐杰 阅读(86) 评论(0) 推荐(0)

导航