
模板类
cqbz_ChenJiage
这个作者很懒,什么都没留下…
-
原创 图论学习笔记3
图论学习笔记3Bellman-Ford 算法松弛负边权操作负权环判定朴素实现Spfa思想实现 Bellman-Ford 算法 Bellman-Ford算法: DijkstraDijkstraDijkstra类似,都以松弛操作为基础,即估计的最短路径值渐渐地被更加准确的值替代,直至得到最优解。在两个算法中,计算时每个边之间的估计距离值都比真实值大,并且被新找到路径的最小长度替代。 松弛 每次松弛操作实际上是对相邻节点的访问,第 n次松弛操作保证了所有深度为n的路径最短。由于图的最短路径最长不会经过超过 |2020-07-30 22:11:3635
0
-
原创 图论学习笔记2
最短路多源最短路Floyd 多源最短路 Floyd FloydFloydFloyd是基于DPDPDP思想。 设kkk为中转点,与iii, jjj都有边相连。 那么可以得到dis[i][j]dis[i][j]dis[i][j]的最短路径的状态转移方程为: dis[k,i,j]=min(dis[k−1,i,j],dis[k−1,i,k]+dis[k−1,k,j]dis[k,i,j]=min(dis[k-1,i,j], dis[k-1,i,k]+dis[k-1,k,j]dis[k,i,j]=min(dis[k−12020-07-29 21:15:2128
0
-
原创 树状数组学习笔记
定义 树状数组(Binary Indexed Tree(B.I.T), Fenwick Tree)是一个查询和修改复杂度都为log(n)的数据结构。主要用于查询任意两位之间的所有元素之和,但是每次只能修改一个元素的值;经过简单修改可以在log(n)的复杂度下进行范围修改,但是这时只能查询其中一个元素的值(如果加入多个辅助数组则可以实现区间修改与区间查询)。 —— by baidu 实现 用一个数组bit[i]bit[i]bit[i]表示从[i−lowbit(x)+1,x][i - lowbit(x) + 12020-07-26 22:16:1821
0
-
原创 拓扑排序学习笔记
拓扑排序 拓扑排序是对一张 有向 并且 无环 的图进行遍历排序。 如果在图中所有的节点构成的序列AAA中,对于每一条边(x,y)(x, y)(x,y):xxx都出现在yyy的前面,则序列AAA就为这张图的拓扑序。 关于入度和出度 入度 :以节点xxx为终点的有向边的条数被称为xxx的入度。记作 deg(x)deg(x)deg(x) . 出度 :以节点xxx为起点的有向边的条数被称为xxx的出度。 例如在此图中,节点3的入度就为2 ,节点4的入度也为2. 思想 不断选择图中入度为0的节点入队(如上图中的节点2020-07-11 12:25:5454
0
-
原创 STL 技巧整理 7/22
STL 目录一览 vector queue priority_queue deque set multiset map bitset vector 变长数组,内部基于倍增思想。 声明 #include <vector> vector<int> a; vector<int> b[250]; struct node{...}; vector<node> c; size/empty ...2020-07-07 14:11:1768
1
-
原创 多算法模板整理
1.递归 int name(int n) { if(满足边界条件) return ...; if(满足边界条件) return ...; ... else { sbproblems... ... return name(...) + ... } } 2.二分 2.1 左边界 int left_bound(int[] nums, int target) { if (nums.length == 0) return -1; int2020-06-20 16:05:5446
0