摘要: 1.你对回溯算法的理解 回溯法一般都用在要给出多个可以实现最终条件的解的最终形式。回溯法要求对解要添加一些约束条件。总的来说,如果要解决一个回溯法的问题,通常要确定三个元素: 1、选择。对于每个特定的解,肯定是由一步步构建而来的,而每一步怎么构建,肯定都是有限个选择,要怎么选择,这个要知道; 同时, 阅读全文
posted @ 2018-12-20 17:33 Archer丶kk 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 1.实践题目 7-2 工作分配问题 2.问题描述 设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为cij 。 设计一个算法,对于给定的工作费用,为每一个人都分配1 件不同的工作,并使总费用达到最小。 输入格式: 输入数据的第一行有1 个正整数n (1≤n≤20)。接下来的n行,每行n个数 阅读全文
posted @ 2018-12-20 17:19 Archer丶kk 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 我对贪心算法的理解 贪心算法在解决问题时总是选择局部最优解,就是说不从整体考虑,而是从当前看来最好的选择,即局部最优解。 汽车加油问题的贪心选择性质 当汽车剩余的油量足够开到下一个站,不需要加油;否则加一次油。 for(int i= 0;i<k+1;i++ ){ cin>>a[i]; } for(i 阅读全文
posted @ 2018-12-02 13:08 Archer丶kk 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 一:实践题目: 给定n位正整数a,去掉其中任意k≤n 个数字后,剩下的数字按原次序排列组成一个新 的正整数。对于给定的n位正整数a和正整数 k,设计一个算法找出剩下数字组成的新数最 小的删数方案。 输入格式: 第 1 行是1 个正整数 a。第 2 行是正整数k。 输出格式: 输出最小数。 输入样例: 阅读全文
posted @ 2018-11-26 11:53 Archer丶kk 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 一、实践题目 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时,定义子段和为0。 要求算法的时间复杂度为O(n)。 输入格式: 输入有两行: 第一行是n值(1<=n<=10000); 阅读全文
posted @ 2018-11-05 16:19 Archer丶kk 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 1.对动态规划算法的理解 动态规划:多阶段(两段)最优化决策解决问题的过程就称为动态规划。 总的来说动态规划算法思想是问题的规模缩小,然后求解子问题,根据子问题来解决总问题。动态规划问题将中间结果保留在数组中,每个状态都对应一个状态转移。动态规划考虑问题是从全局来考虑,每个结果的计算都考虑了当前的最 阅读全文
posted @ 2018-10-28 18:48 Archer丶kk 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 1、实践题目: 两个有序序列的中位数 2、题目描述: 知有两个等长的非降序序列S1, S2, 设计函数求S1与S2并集的中位数。有序序列A​0​​,A​1​​,⋯,A​N−1​​的中位数指A​(N−1)/2​​的值,即第⌊(N+1)/2⌋个数(A​0​​为第1个数)。 输入格式: 输入分三行。第一行 阅读全文
posted @ 2018-10-21 18:27 Archer丶kk 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 输入n值(1<=n<=1000)、n个非降序排列的整数以及要查找的数x,使用二分查找算法查找x,输出x所在的下标(0~n-1)及比较次数。若x不存在,输出-1和比较次数。 输入格式: 输入共三行: 第一行是n值; 第二行是n个整数; 第三行是x值。 输出格式: 输出x所在的下标(0~n-1)及比较次 阅读全文
posted @ 2018-10-15 17:19 Archer丶kk 阅读(463) 评论(0) 推荐(0) 编辑
摘要: 在学习二分法的过程中,我认为这个算法思想是较为简单,而且也容易理解。 利用二分法查找可以大大降低时间复杂度,例如顺序查找复杂度为O(n),而用二分法查找则为O(logn) 这在处理大数据的时候会有明显的好处。 对于组队,由于刚组成队伍,刚开始还没有太多交流,但是相信以后我们会相互促进。 阅读全文
posted @ 2018-10-13 16:18 Archer丶kk 阅读(191) 评论(0) 推荐(0) 编辑