OI学习笔记
Hoyoak
一位蒟蒻
展开
-
OI学习笔记之数据结构——带权并查集
带权并查集是一种并查集的操作,其功能与基础并查集相同,支持查询和合并操作。除此之外,带权并查集还维护了子节点与父节点之间的关系,在一个有序的集合中,某个元素到根节点的距离(例:NOI2002银河英雄传说),其操作是除了维护节点关系数组f以外,还维护了多个能表示元素之间关系的数组如value等带权并查集的基本操作1——merge//比如要维护有序队列中某个点离祖宗的距离inline void ...原创 2019-07-28 23:48:20 · 152 阅读 · 0 评论 -
OI学习笔记之图论强连通分量与缩点
强连通分量与缩点没有用的话qaq :Ummmm…图论的大部分知识本来早就有学过,只是一直没有写成博文来梳理,但既然上了qbxt DP图论就写一篇来总结下,主要是来听DP的,但…由于太菜的原因,DP听得天花乱坠QWQ一,基础知识篇1,强连通:如果有两个点u和v,如果u能到达v,v也能到达u,就称u和v是强连通的。2,强连通分量:有向图极大的强连通子图。3,强连通图:有向图中任意两个顶...原创 2019-08-11 00:00:05 · 351 阅读 · 0 评论 -
OI学习笔记之图论最短路算法
最短路没有用的话qaq :Ummmm…图论的大部分知识本来早就有学过,只是一直没有写成博文来梳理,但既然上了qbxt DP图论就写一篇来总结下,主要是来听DP的,但…由于太菜的原因,DP听得天花乱坠QWQ图中的最短路算法分为单源最短路算法(dijkstra,Bellman-food,spfa)和多源最短路算法(floyd),单源最短路算法是求图上一点到其他任意一点的最短路径,多源最短路算...原创 2019-08-10 19:57:14 · 313 阅读 · 1 评论 -
OI学习笔记之图论最小生成树
最小生成树没有用的话qaq :Ummmm…图论的大部分知识本来早就有学过,只是一直没有写成博文来梳理,但既然上了qbxt DP图论就写一篇来总结下,主要是来听DP的,但…由于太菜的原因,DP听得天花乱坠QWQ一,最小生成树的定义一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边。 ——百度百科二,最小生成树算法顾...原创 2019-08-10 18:47:26 · 250 阅读 · 0 评论 -
OI学习笔记之图论拓扑排序
拓扑排序没有用的话qaq :Ummmm…图论的大部分知识本来早就有学过,只是一直没有写成博文来梳理,但既然上了qbxt DP图论就写一篇来总结下,主要是来听DP的,但…由于太菜的原因,DP听得天花乱坠QWQ有向无环图的拓扑排序是将DAG中的所有节点排序为线性序列,使得对于有向无环图的所有<s,e>∈E,都有s在线性序列中出现在u的前面。有向图中若有环则一定不存在拓扑排序,若...原创 2019-08-09 23:33:15 · 217 阅读 · 0 评论 -
OI学习笔记之图的遍历
图的遍历没有用的话qaq :Ummmm…图论的大部分知识本来早就有学过,只是一直没有写成博文来梳理,但既然上了qbxt DP图论就写一篇来总结下,主要是来听DP的,但…由于太菜的原因,DP听得天花乱坠QWQ图的遍历分为两种,图的深度优先遍历和图的广度优先遍历,深度优先遍历是用栈来实现的,可以用手写栈,也可以递归(要小心没开栈的时候爆栈)一,图的深度优先遍历实现很简单,和dfs一样,...原创 2019-08-09 21:29:39 · 444 阅读 · 0 评论 -
OI学习笔记之图论基础知识
图论基础知识没有用的话qaq :Ummmm…图论的大部分知识本来早就有学过,只是一直没有写成博文来梳理,但既然上了qbxt DP图论就写一篇来总结下,主要是来听图论的,但…由于太菜的原因,DP听得天花乱坠QWQ一,图:图是边和点组成的几何体 G=< V , E > V是点集合,E是边集形如这样的东西就是一个图二,图的相关基本概念1,边:图上连接点和点之间的东西叫做边...原创 2019-08-09 19:23:07 · 990 阅读 · 1 评论 -
动态规划入门
一,概念篇1,动态规划:通过计算出小问题的最优解,可以推出大问题的最优解,从而可以推出更大问题的最优解,最小问题即是边界情况。2,子问题(小问题):子问题是一个与原问题有着类似的结构,但规模比原问题小的问题。3,动态规划的基本思想:将待求解的问题划分为若干个阶段(子问题),按顺序求解子问题,子问题的求解为更大子问题的求解提供信息,由于动态规划解决的问题多数有重叠子问题这个特点,为减少重复计算...原创 2019-08-06 19:09:26 · 251 阅读 · 0 评论 -
动态规划之数位DP
数位动态规划常用语解决动态规划中的计数类问题(计数类问题就是求方案数的问题),具体,一般会给定一个区间[x,y],让你求这个区间里满足某种性质的数字的个数。从这个问题出发,给定区间[x,y],让我们求区间中满足某种性质的数字的个数,最简单的暴力想法是,枚举区间中的每一个数,逐个判断,确定满足条件的数字的个数,当数据范围较大时,这种方法显然会超时,因此我们引入数位dp。一, 数位dp的基本思想...原创 2019-08-08 15:56:24 · 231 阅读 · 0 评论 -
OI学习笔记之数据结构——基础并查集
并查集是一种树型的数据结构,用于处理一些不相交集合的合并及查询问题。常常在使用中以森林来表示。一,对并查集的认识并查集是树形结构,常常在题目中用来判断两个元素是否属于同一个集合,每个集合都有一个特征性元素称为这个集合的father,如果两个元素的father相同,则说明这两个元素属于同一集合,若这两个元素的father不相同,则说明这两个元素不属于一个集合。并查集就是这样一种支持合并和查询的树...原创 2019-07-27 23:51:53 · 264 阅读 · 0 评论 -
OI学习笔记之数据结构——树状数组
树状数组复杂度 O(logn).树状数组是一种维护前缀和,区间最大值,区间最小值,区间异或和等满足交换律的东西的数据结构,其支持单点修改和区间查询。树状数组其实并不算一棵树,它是由数组+二进制的操作实现的,只是在实现的过程中我们借助了树形结构的思想,因此树状数组并不需要建树等操作。一,认识树状数组树状数组也是一棵二叉树,长相类似于一棵偏沉的线段树,其中最下面一排数组a代表给定的序列a1,...原创 2019-07-27 20:00:55 · 413 阅读 · 0 评论 -
OI学习笔记之数据结构——ST表
ST表是用于解决RMQ问题的一种数据结构(RMQ:询问某个区间内的最大值或最小值),其主要运用的是倍增和动态规划的思想。ST表复杂度:预处理O(nlogn) 查询 O(1)一,ST表的认识ST表的实现,我们用一个二维数组st[i][j]来建立ST表,其中st[i][j]表示的是,从第i个数开始往后2^j个数中的最大值或者最小值。二,建立ST表在建立ST表的过程中,我们主要运用了动态规划,...原创 2019-07-27 15:48:49 · 552 阅读 · 0 评论 -
OI学习笔记之数据结构——扩展域并查集
扩展域并查集与普通的并查集区别在于扩展域并查集开到x*n用于维护x对关系具体详见P1525关押罪犯题解原创 2019-07-30 15:12:14 · 178 阅读 · 0 评论 -
OI学习笔记之倍增求LCA
倍增求LCA一,首先回顾一下什么是倍增算法,倍增算法就是改善一下一步一步跳的缓慢,改为跳2^k 步从而达到加快速度的目的,倍增算法一般要先预处理一个数组,代表从从某个点开始跳2^k 个数到达哪里,比如ST表的ST[i][j]代表从第i个数向后2^j 个数,树上倍增求LCA的f[i][j]表示i的第2^j 个祖先是谁。二,最近公共祖先LCA概念篇1,祖先:与x处于同一条重链且深度小于点x的...原创 2019-08-11 06:25:50 · 298 阅读 · 0 评论