![](https://img-blog.csdnimg.cn/20190918135101160.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法
文章平均质量分 72
数据结构与算法
Keroro军曹大人
这个作者很懒,什么都没留下…
展开
-
图的存储:回顾C++最基本的两种储存/访问方式:数组和链表
回顾C++最基本的两种储存/访问方式:数组和链表原创 2022-10-19 16:28:22 · 280 阅读 · 0 评论 -
图的储存:矩阵、邻接表、链式前向星
图的储存:矩阵、邻接表、链式前向星原创 2022-10-19 17:16:52 · 185 阅读 · 0 评论 -
【openjudge】C++ cin;cout 常见输入输出
cin简介一、输入的是数组类型1.一维数组:输入规模n,以及n个数的值。2.二维数组(矩):输入规模m*n,以及m*n个数的值。3.以0结束的输入4.以回车结束的输入二、输入的是字符串行的文本类型原创 2022-11-28 15:26:18 · 1582 阅读 · 0 评论 -
【C++动态规划】用滚动数组节省空间复杂度
所以可以用两个变量p,q代表dp[i-2],dp[i-1],用r代表当前处理的dp[i],r=p+q,即相当于dp[i]=dp[i-2]+dp[i-1],然后下一次循环,让p=q,q=r,意思是数组向p的方向滚动了一位,滚动数组里原来的dp[i-2]变成dp[i-1],原来的dp[i-1]变成dp[i],r变成dp[i+1]~~使用有限个位置储存元素的信息,这有限个位置相当于一个空间复杂度为O(1)的vector,每次最后一个位置放入新加入的元素,其余元素向前移动一个位置。原创 2022-12-16 00:16:00 · 303 阅读 · 0 评论 -
【POJ】Genealogical tree 深度优先搜索dfs+哈希表;Yogurt factory 贪心
在那里遇到了最有价值的火星人,因此,为了在所有讨论中冒犯任何人,首先用于让老火星人发言,而不是年轻的火星人,而不是最年轻的无子女评估员。但是,如果由于错误而首先说一个孙子,并且只比他年轻的曾祖父说话,这是一个真正的丑闻。标准输入的第一行仅包含一个数字 N,1原创 2022-12-21 18:04:04 · 107 阅读 · 0 评论 -
【动态规划】最强最详细的思路及模板(C++)
如何定义原问题和子问题 f(n),因为有时题目给的问题可能比较模糊,所以我们在求解时要经过一些转换。如何通过子问题 f(1), f(2), … f(n - 1)推导出原问题 f(n),即如何写状态转移方程李煜东著《算法竞赛进阶指南》,摘录如下::为了保证计算子问题能够按照顺序、不重复地进行,动态规划要求已经求解的子问题不受后续阶段的影响。这个条件也被叫做「无后效性」。换言之,动态规划对状态空间的遍历构成一张有向无环图,遍历就是该有向无环图的一个拓扑序。原创 2022-12-24 13:43:02 · 3335 阅读 · 0 评论 -
【C++】动态规划之状态转移方程(单串)
接着就是要自底向上的求解问题的,先将最小规模的子问题的最优解求出,一般都用一张表来记录下求得的解,到后来遇到同样的子问题的时候就可以直接查表得到答案,最后就是通过一步一步的迭代得出最后问题的答案了。反思:错在了nums[5] 8那里,规模为6的数组里,如果子序列不以8结尾,有[4,10]长度是2,这样8前面的3记录的是2,又8>3那么 8记录的是2+1=3,但是规模为6的数组里不存在长度为3的子序列,只有[4,10]和[3,8]两个长度为2的序列,但8这里却把[4,10]和[3,8]混在一起。原创 2022-12-24 22:03:31 · 2264 阅读 · 0 评论 -
【C++ dfs return】dfs可以不写return吗?
答案是:有可以不写return的情况。1、理解C++语言递归函数*2、例题:leetcode 判断二分图(dfs)3. dfs不能不写return的情况1.非法访问2.无限递归原创 2022-11-29 17:55:13 · 1018 阅读 · 2 评论 -
【C++】【排序算法】快速排序;堆排序;归并排序;逆序对(保证看懂!)
一、快速排序二、堆排序三、归并排序归并排序的拓展(1):数组中的逆序对归并排序的拓展(2):重要逆序对原创 2022-12-24 00:06:30 · 1040 阅读 · 0 评论