摘要: 1.工作分配问题问题描述 设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为cij 。 设计一个算法,对于给定的工作费用,为每一个人都分配1 件不同的工作,并使总费用达到最小。 输入格式: 输入数据的第一行有1 个正整数n (1≤n≤20)。接下来的n行,每行n个数,表示工作费用。 输出格 阅读全文
posted @ 2018-12-24 19:28 wwency 阅读(78) 评论(0) 推荐(0) 编辑
摘要: 1.对回溯法的理解 在我的理解中,回溯法就是构建一个空间树,由上而下的访问到子节点。在这个过程中,如果访问到某一节点其不符合要求,就可对其进行剪枝,即下的子节点无需访问。然后以同样的方法进行回溯,将新找到的解与原解进行比较,择优选择。若无需求最优解,那么只要搜索到一个解便可结束。 2.“子集和”问题 阅读全文
posted @ 2018-12-24 19:18 wwency 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 1.实践题目 2.问题描述 给定n位正整数a,去掉其中任意k≤n 个数字后,剩下的数字按原次序排列组成一个新 的正整数。对于给定的n位正整数a和正整数 k,设计一个算法找出剩下数字组成的新数最 小的删数方案。 输入格式: 第 1 行是1 个正整数 a。第 2 行是正整数k。 输出格式: 输出最小数。 阅读全文
posted @ 2018-12-01 23:59 wwency 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 1.对贪心算法的理解 贪心算法顾名思义就是找出最好的选择。 一般是一步一步、挨着挨着地向前进行下去,并且有局部最优解。 2.说明汽车加油问题的贪心选择性质 先看汽车当前油量能否到达下一个加油站,如果可以那么在当前加油站无需加油;如果不行,在当前加油站先加油在看能否到达下一个加油站,若加油后仍然无法到 阅读全文
posted @ 2018-12-01 23:27 wwency 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 对动态规划的理解 就是将一个问题分解为很多个子问题,然后通过求解子问题来解决原问题。然后每个子问题的解都会被填入一个表中,便于对子问题解的利用和存放。动态规划的解决经常和递归方程联系在一起。其实只要有了解决思路和想法就可以由内而外的解决问题,但是有时候要想出解决方法也不容易,想出了之后编程起来就不会 阅读全文
posted @ 2018-11-14 12:53 wwency 阅读(83) 评论(0) 推荐(0) 编辑
摘要: 题目 最大子段和 问题描述 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时,定义子段和为0。 算法描述 设一个数组a[ ],用于存放n个数,定义一个整型sum存放最大和,再定义一个 阅读全文
posted @ 2018-11-14 11:50 wwency 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 实验题目: 7-1 二分查找 输入n值(1<=n<=1000)、n个非降序排列的整数以及要查找的数x,使用二分查找算法查找x,输出x所在的下标(0~n-1)及比较次数。若x不存在,输出-1和比较次数。 输入格式: 输入共三行: 第一行是n值; 第二行是n个整数; 第三行是x值。 输出格式: 输出x所 阅读全文
posted @ 2018-10-14 10:50 wwency 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 第二次的作业让我感觉到当初认真学c++和数据结构的重要性,许多思想和方法,他们都是有联系的。做选择填空的时候,我把数据结构书拿了出来,把以前的那些各种排序方法和有关复杂度的一些内容都重新温习了一遍,而这些知识在编程的时候也是有很大用处的。比如有关快速排序的算法,就可以用在第一道编程题里,能助我判断某 阅读全文
posted @ 2018-10-14 09:13 wwency 阅读(99) 评论(0) 推荐(0) 编辑