
算法自刷
ysyyhhh
这个作者很懒,什么都没留下…
展开
-
DAG上的动态规划 | 动态规划转换成DAG上的最短路、最长路问题
文章目录DAG上的动态规划二元关系的问题转换成图上问题问题举例嵌套矩形完全背包——硬币问题不固定起点终点的最长路及字典序固定终点的最长路和最短路dp的几种写法输出字典序方法刷表法和填表法tipsDAG上的动态规划DAG图,即有向无环图。紫薯上说:有向无环图上的动态规划是学习动态规划的基础。因为有很多问题可以转换为求DAG上最短路、最长路或路径计数的问题。问题要素分割:种类\求的结果最短路最长路路径计数不固定起点终点最短路问题最长路问题固定起点不常见完全背包原创 2020-11-01 14:32:08 · 768 阅读 · 0 评论 -
前缀和常见的三种情况
前缀和的基本概念s[i] 为 数组a 前i个元素的和s[i] = a[0]+ … + a[i]s[i] = s[i-1] + a[i]l 到 r 区间内的和:sum[l,r] = s[r]-s[l-1]异或前缀和:s[i] 为 数组a 前i个元素的异或和s[i] = s[i-1] xor a[i]二维前缀和P2004 领地选择题意理解:有一个N x M的地图,地图上的每一个点都有一个值,求占地C x C 正方形里值的和最大思路:用sum[a][b]来记录 从[0][0]到[a原创 2020-09-22 21:24:18 · 399 阅读 · 0 评论 -
直接插入排序、希尔排序 与 简单选择排序、堆排序 | 排序(一)
本章会分两篇文章讲解常见的8种排序方法,可以点个关注、加个收藏,进个人空间继续看下一部分的内容哦!后期会在这篇文章开头加上第二部分的链接。排序概念分类:稳定排序 与 不稳定排序指 一个序列中,有两个键值一样的元素AB。假设A排在B前,经过稳定排序后,A仍然在B前面。而不稳定排序可能会改变AB的前后顺序。内排序 与 外排序内排序指在本身序列上排序,需要的辅助空间为O(1);外排序则需要更多的辅助空间。方法分类:插入类排序:直接插入排序希尔排序选择类排序简单选择排序堆排序交换类排.原创 2020-05-31 21:21:23 · 686 阅读 · 0 评论 -
查找(排序)二叉树、最优二叉树(哈夫曼树)、线索二叉树、平衡二叉树;各种二叉树你还记得它们都是什么吗?(二)
查找二叉树又叫二叉排序树性质:左儿子的值 < 父结点的值 < 右儿子的值因此,不能存在俩个相同值的结点作用(意义):极大程度提高查询数据的效率。(相当于二分查找的效率)插入结点:若有相同键值的结点,则不插入。若查找二叉树为空,则直接作为根结点。与父结点(先从根结点)比较。小于父结点,插入结点到左子树。大于父结点,插入结点到右子树。删除结点:如果为叶子结点,直接删除。如果只有一个儿子结点,则让儿子结点代替它的位置。如果有俩个儿子结点,则在该结点的左子树上,找到原创 2020-05-29 14:15:07 · 1505 阅读 · 0 评论 -
各种各样的二叉树你还记得它们都是什么吗? 简单介绍基本的6种二叉树及操作(一)
二叉树的基本概念结点的度:指一个结点的拥有多少个孩子结点如1号结点有俩个孩子,所以1号结点的度为2。而7号结点无孩子,所以7号结点的度为0。树的度 :所有结点中最高的度数就是结点的度。叶子结点:无孩子结点的结点。分支结点:除了叶子结点的结点(即有孩子的结点)**...原创 2020-05-28 20:39:45 · 1268 阅读 · 0 评论 -
以入门基础理解最短路算法#2 BFS 与 DFS 、存图、STL(最短路算法必要基础) Part 2
这里是第二部分上一部分是BFS与DFS如何利用STL这部分的内容因为是在边写最短路全篇时边加的,所以知识点会有点零碎。(后期可能也会有补充)vector头文件#include< vector >用法很简单,若a是一个vector,a.size() //可以读取它的大小,a.resize() //改变大小,a.push_back() //向尾部添加元素,a.pop_back()原创 2020-05-25 22:39:02 · 372 阅读 · 0 评论 -
以入门基础理解最短路算法#2 BFS 与 DFS 、存图、STL(最短路算法必要基础)Part 1
上一篇文章 从入门角度深入理解——有关最短路的常见算法#1 最短路问题介绍。点这里看上一篇简单介绍了图的基本知识、最短路问题的分类情况。可以让我们对求解最短路问题有个角度。这告诉我们,写最短路问题时要考虑:是否有权是有向图还是无向图是否有负环有了思考的角度。我们还需要掌握一些基本的工具。如果说上一篇文章是在我们思考该从哪个角度。那么这篇文章就是学习...原创 2020-05-25 16:04:47 · 2265 阅读 · 2 评论 -
从入门角度深入理解——有关最短路的常见算法#1 最短路问题介绍
最短路问题介绍这里的最短路问题,指的是单源最短路。单源最短路,意如其名,只有一个原点,走到其他点的最短路径。即求一个点到其余点的最短路径。图的简单概述:要了解最短路,首先要简单理解一下什么是图。书上概述如下(可以跳过不读):图G=(V,E)是一个二元组(V,E)使得E⊆[V]的平方,所以E的元素是V的2-元子集。为了避免符号上的混淆,我们总是默认V∩B=Ø。集合V中的元素称为图G的顶点(或节点、点),而集合E的元素称为边(或线)。通常,描绘一个图的方法是把顶点画成一个小圆圈,如果相应的顶点之原创 2020-05-25 08:00:17 · 968 阅读 · 0 评论 -
重拾算法竞赛之路 day#7(“纯新手”的入门经历)(贪心与排序)
贪心策略排序原创 2020-05-08 22:49:14 · 251 阅读 · 0 评论 -
重拾算法竞赛之路 day#6(“纯新手”的入门经历)(字符串与哈希)
基础定义字符串的哈希哈希题目字典树(前缀树)原创 2020-05-07 22:47:59 · 259 阅读 · 0 评论 -
重拾算法竞赛之路 day#5 (“纯新手”的入门经历)(基本数据结构)
前缀和离散化邻接链表栈与队列队列原创 2020-05-06 23:30:57 · 272 阅读 · 0 评论 -
重拾算法竞赛之路 day#4 (“纯新手”的入门经历)(STL)
一、C++与C1.cin比scanf慢很多,哪怕是关闭了同步也是。1e5以上的数据用cin就可能会TLE。2.关于输出小数,printf比较方便,cout需要用头文件,cout.setprecistion(int digit)修改精度。3.bool 类型 非0为true 0为false4.开辟内存 new int; 返回的是指针5.struct 可以加入构造函数STLC中原有的...原创 2020-05-06 23:22:09 · 213 阅读 · 0 评论 -
重拾算法竞赛之路 day#3 (“纯新手”的入门经历)(字符串+大数)
重拾算法竞赛之路 day#3 C++今天完成的事情刷的题有 有关字符串跟大数的今天完成的事情今天在牛客网上测试了一下竞赛水平,果然面对模拟比赛的时候解题的水平就刷刷往下掉,应该只写了一道题。得的lv5.刷的题有 有关字符串跟大数的今天整理的字符串的代码有不全的,还有大数的除法还没有好的思路写出来(大数除法一个是用模拟竖式除法,还有一个是大数分解 然后除 得到商和余数然后拼到之后的大数上继续...原创 2020-04-28 23:35:52 · 144 阅读 · 0 评论 -
重拾算法竞赛之路 day#2 (“纯新手”的入门经历)(一些入门题目的题解代码)
重拾算法竞赛之路 day#2(C++)写在开头计划今天完成的事情基础知识下面是代码看这标题为什么是从第二天开始,是因为从昨天开始刷的题。写在开头从高中的noip水了俩年,每年都混个省三开始。现在到了大学,却发现这个学校没有去参加各大算法竞赛的方向,但还是心心念念着打比赛。在经过大一上个学期的断断续续捡起高中的基础来,才发现自己脑海里一直没有个基础的架构来支撑起一个体系,以至于到现在学到面向对...原创 2020-04-27 23:58:41 · 539 阅读 · 0 评论