考研/保研机试题
地球太危险了
一位有理想的程序猿~
展开
-
动态规划(DP)+经典例题剖析
目录一、基本思想二、与分治法的异同三、动态规划算法的基本要素四、算法步骤五、经典例题六、碰到的例题一、基本思想将待求解的问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。二、与分治法的异同同:基本思想一致(如上)异:适用动规求解的问题,经分解得到的子问题往往不是相互独立的。而适用分治法的往往相互独立。三、动态规划算法的基本要素...原创 2019-03-24 22:35:42 · 801 阅读 · 0 评论 -
百练:2181:Jumping Cows
一、题意概括题意:给定一串有n个数的串,要求找出一个子串,在子串的奇数位置+,在子串的偶数位置-。二、算法本题可采用贪心算法,贪心代码的简易程度取决于你对这题的抽象程度,以下给出一个抽象程度最高的解法。抽象解释:首先建立坐标系,画出数据点,并用曲线相连,如下:而贪心总体想在+的时候多+一点,在-的时候多减一点,那么我们则可以使每次+的时候都在曲线的波峰(即最近的最高值)...原创 2019-06-21 01:03:57 · 291 阅读 · 0 评论 -
单源最短路径Dijkstra算法的思想、详细步骤、代码
目录一、算法思想二、算法详细步骤三、伪代码 + C++代码四、算法复杂度分析五、算法改进六、应用案例一、算法思想Dijkstra算法本质上是一个贪心算法,其基本思想是:设置一个顶点集合S并不断地做贪心选择来扩充这个集合。该算法适用:边权为正、有向无向都适用。二、算法详细步骤假设: 1)已知带权图G = (V,E)。 ...原创 2019-04-13 17:08:39 · 8800 阅读 · 5 评论 -
二叉树的遍历(先序、中序、后序)附:C++实现及其应用
目录一、概念二、样例的图三、3种遍历方式的遍历及C++遍历实现四、对于上面那棵树,给出的三种遍历结果五、二叉树遍历的应用一、概念 二叉树的遍历(Traversing binary tree)是指从根节点出发,按照某种次序访问二叉树中所有的节点,使得每个节点被依次访问且仅被访问一次。二、样例的图 ...原创 2019-04-06 16:43:22 · 545 阅读 · 0 评论 -
护林员盖房子
目录一、题目描述二、解题思路三、代码一、题目描述总时间限制:1000ms内存限制:65536kB描述在一片保护林中,护林员想要盖一座房子来居住,但他不能砍伐任何树木。现在请你帮他计算:保护林中所能用来盖房子的矩形空地的最大面积。输入保护林用一个二维矩阵来表示,长宽都不超过20(即<=20)。第一行是两个正整数m,n,表示矩阵有m行n...原创 2019-03-27 22:47:20 · 1773 阅读 · 2 评论 -
Missing number
一、题目Given a positive integer n(n≤40), pick n-1 numbers randomly from 1 to n and concatenate them in random order as a string s, which means there is a missing number between 1 and n. Can you find th...原创 2019-03-23 14:36:19 · 644 阅读 · 0 评论 -
Count number of binary strings without consecutive 1’s
一、题目1. Count number of binary strings without consecutive 1’sGiven a positive integer n(3≤n≤90), count all possible distinct binary strings of length n such that there are no consecutive 1's .Exam...原创 2019-03-23 00:06:18 · 340 阅读 · 0 评论 -
最大子矩阵和
一、题目一个M*N的矩阵,找到此矩阵的一个子矩阵,并且这个子矩阵的元素的和是最大的,输出这个最大的值。二、解题思路这题是最大子段和的二维推广,实质可以将二维进行枚举,并化为最大子段和求解。最后子矩阵一定是在某两行之间的。因此假设我们认为子矩阵在第i行和第j行之间,我们如何得到i和j呢,可以进行枚举。 枚举所有1<=i<=j<=M,表示最终子矩阵选取的行范围。...原创 2019-03-25 23:52:42 · 321 阅读 · 0 评论 -
最大子段和
一、问题给定n个整数(可能为负数)组成的序列a1,a2,a3,...,an,求该序列的子段和的最大值。二、思路总体有三总思路:穷举算法(简单算法)、分治算法和动态规划。下面就讲一下动态规划方法。设b[i]为前i个中且包含第i个元素的最大子段和。则b[i+1] = max{b[i] + a[i+1], a[i+1]}因为b[i+1]分为两种情况:1、b[i] > 0...原创 2019-03-24 23:17:00 · 452 阅读 · 2 评论 -
百练:2408:Anagram Groups
1、解题思路根据题意需要对一连串字符串进行分类,分类标准为最小字典序排列相同,则根据分类和输出标准可以构造一个结构体,结构体如下:struct node{ set<string> s_set; string new_string; string old_first_string; int num;}s_node[30001];1、其中s_s...原创 2019-06-11 15:03:47 · 476 阅读 · 0 评论