
Acwing 基础算法
文章平均质量分 77
基础算法笔记整理,方便知识查看与整合
一只积极向上的小咸鱼
努力提高技术的搬砖工,求关注,求收藏,欢迎访问本人blog:jianggy.chat
“总结可能挺费时间但后面可能起很大的作用”
展开
-
第三章 搜索与图论(三)
从前向后遍历,如果没有遍历过,染为一种颜色,将其余所有与它连通的点染为相反的颜色。二分图:把所有点分为两边,使得所有边都在集合之间,集合内部没有边。由于图中没有奇数环,所以染色一定不会矛盾【反证法证明】步骤:用bfs【bfs不用手写队列,代码比bfs要短】一个连通块只要一个点确定了,其余所有点的颜色都确定了。基本思路:左右两边匹配成功的最大数是多少。一条边的两个点一定属于不同的集合。染色法:判断一个图是不是二分图。匹配成功:没有两条边共用一个点。奇数环:环的边的数量是奇数。如果不含奇数环一定是二分图。...原创 2022-08-10 09:16:22 · 123 阅读 · 0 评论 -
第三章 搜索与图论(二)
知识结构图根据图的性质,选择不同的算法最短路算法的侧重点与难点在于建图,如何把原问题抽象为最短路问题不同的算法侧重点不同,最短路算法侧重于实现,其余算法可能侧重于原理。原创 2022-08-09 21:04:03 · 784 阅读 · 0 评论 -
第三章搜索与图论(一)
框架。原创 2022-08-08 16:43:56 · 190 阅读 · 0 评论 -
第二章 数据结构(一)
队列中存储的数组下标而不是存储数据值,因为如果存储数据值,则无法进行判断到底是否溢出。存储下标的话,只需要套一层,就可以得到对应的数据值。先想一下暴力做法怎么做,观察其中没有用的元素,把其中没有用的元素删掉得到单调性。相等的最大长度是多少。思路:先想一下暴力做法是什么,再挖掘一些性质,使我们可以将目标集中在比较少的状态中,从而将问题的复杂度降低。为方便,下标为0为头部,下标为1为尾部,任意节点最终都插入至两者之间,因此不需要head指针。数字2在4的后面输入,2比4小并且在4的后面,因此4永远不会被输出。.原创 2022-08-08 09:49:40 · 309 阅读 · 0 评论 -
第二章 数据结构(三)
用unsigned long long存储h,当数值溢出相当于取模,因此不需要取模。vector数组长度不够时,新建一个二倍长度的数组,然后把之前的数据copy过来。系统为某一个程序分配空间时,所需的时间基本上与空间大小无关,与申请次数有关。如何处理冲突:从第k个坑位开始找,如果第k个坑位有人的话就查找下一个坑位。将P进制的数转化为10进制的数;不能把字母映射为0。只开了一个一维数组,没有开辟链表,形式更为简单。好处:可以利用前缀哈希,求得所有子串 的哈希值。一维数组的长度经验来说开到题目的两到三倍。...原创 2022-08-07 20:24:30 · 272 阅读 · 0 评论 -
第二章 数据结构(二)
麻烦在于删除第k个插入的数,因此插入与删除时需要快速找到第k个数是啥,因此需要额外开两个数组存储[p–下标,h–堆]求x的编号上复杂度为树的高度->找到根节点后所有节点均指向根节点。用size维护集合中点的数量,只有根节点有意义,添加集合时可以使用以下方法更新size。基本逻辑:如果把某一点值变大了,就需要将这个节点向下移动,越大的数越向下沉。基本逻辑:如果把某一点值变小了,就需要将这个节点向上移动,越小的数越向上浮。每一个集合的编号是根节点的编号,每一个点存储他的父节点编号。删除任意元素[类似删除最小].原创 2022-08-07 12:02:02 · 265 阅读 · 0 评论 -
第一章 基础算法(三)
为什么双指针算法可以起到优化的作用:i:0->nj:0->n 在每次循环完毕,j不需要归零,因此j也是0->n两个指针最多为2n给定一个长度为 n 的数列,请你求出数列中每个数的二进制表示中 1 的个数。输入格式第一行包含整数 n。第二行包含 n 个整数,表示整个数列。输出格式共一行,包含 n 个整数,其中的第 i 个数表示数列中的第 i 个数的二进制表示中 1 的个数。......原创 2022-08-06 09:22:46 · 214 阅读 · 0 评论 -
第一章 基础算法(二)
a[N],b[N]全部初始化为0,b[N]不需要单独构造,只需要在a[N]基础上进行增值的操作即可,即不存在构造函数。好处:主要是处理边界,统一处理所有情况;**注意2: 下标从1开始:**定义S0 = 0。好处:对某个区间的数据加和减小了时间复杂度。差分都不考虑人工构造,只考虑如何更新。作用:快速求出原数组中一段的和。求子矩形的面积–四部分矩形组合。Y不变: Y2,X变:X1-1。代码背的不是字母,背的是思路。X不变:X2,Y变:Y1-1。–四部分矩形组合:拆出来a。差分是前缀和的逆运算。........原创 2022-08-03 16:33:41 · 421 阅读 · 0 评论 -
第一章 基础算法(一)
整体框架。原创 2022-08-02 21:58:31 · 159 阅读 · 0 评论