自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(17)
  • 收藏
  • 关注

转载 快速排序 洛谷

这篇题解来源于一个大胆的想法桶排序有着极高的运行速度,却是一种用空间换时间的算法,具有很大的局限性,无法用来排太大的数据于是,用map代替数组,以时间换空间,达到扩大实用性的目的C++STL中map<int,int>可以当作数组来用,类比桶排序,但是因为map是动态申请储存空间,相当于自动离散化,解决以前的空间浪费用迭代器遍历map节省时间,跳过空白部分接下来...

2019-08-06 11:32:00 140

转载 图论算法

请点击目录中的算法(1). MST1. Prim算法2. Kruskal算法(2). 最短路径1. Floyd算法2. Dijkstra算法3. SPFA算法4. Bellman-ford算法(3). 强连通分量1. Tarjan算法(转载)2. Kosaraju算法### 3. [Tarjan缩点](4). 关键路径1. FLoyd算法的扩展2. To...

2019-08-04 22:02:00 95

转载 ST——LCA在线算法

ST——LCA在线算法【LCA练习】最近公共祖先(版本1)Description  给你一棵有根树,要求你计算出m对结点的最近公共祖先。Input  输入文件的第一行包含两个整数n和m(2<=n,m<=200,000),其中n为结点个数,结点编号为1到n;m表示询问次数。  接下来n-1行,每行两个整数x和y,表示结点x是结点y的父亲结点;  ...

2018-08-31 13:02:00 105

转载 STL链表list

STL链表list作为STL中的另一神器——链表list,你不可不知!(1).优势和劣势1. 优势:功能众多,使用便利,插入删除快速2. 劣势:功能太多,令人眼花缭乱,难以分辨(2).用法1.构造list<int> l 建立一个空链表llist<int> l(length,num) 建立一个含有length个num元素的...

2018-08-30 20:32:00 105

转载 STL集合set

STL集合setset是STL中的神器之一,它有两个功能(1).排序(2).去重一.操作方法(需要头文件 set )(1). 定义set<int> s 定义一个整型的集合s(2). 插入和删除s.insert(元素) 在s中插入一个元素s.erase(数值) 删除集合s中等于这一数值的元素s.clea...

2018-08-30 20:31:00 74

转载 STL队列queue的扩展——优先队列

STL队列queue的扩展——优先队列1. 优先队列的使用优先队列有类似于堆的作用,因此,优先队列也分为大根堆和小根堆队列中的元素会自动进行排序接下来谈谈它们的使用方法:(1).定义1.priority_queue<int> q 定义一个整型的大根堆q2.priority_queue<int,vector<int>,gre...

2018-08-30 20:28:00 119

转载 STL队列queue的扩展——双端队列

STL队列queue的扩展——双端队列你是否还苦恼与STL中队列的单边插 入别怕,deque来拯救你了deque是一种能够支持双端插入的链式储存结构,使用起来十分方便c++STL提供了以下几种操作:(1).定义deque<类型> q 定义一个某种类型的双端队列(2).压入和弹出一.压入q.push_front(元素) 在队首压...

2018-08-30 20:27:00 91

转载 c++常见的STL容器

c++常见的STL容器1 队列—queue我想很多人都知道这个神器—queue队列queue(FIFO),!!需要头文件 #incldue<queue>有几种常见操作:1.queue<类型> q 定义一个某类型的队列q2.q.push(元素) 把一个元素压入队列q的队首3.q.pop() 弹出队尾元素4.q.size() 返回队...

2018-08-30 20:20:00 98

转载 Tarjan算法 消息的传递

Tarjan算法 消息的传递描述:  我们的郭嘉大大在曹操这过得逍遥自在,但是有一天曹操给了他一个任务,在建邺城内有N(<=1000)个袁绍的奸细,将他们从1到N进行编号,同时他们之间存在一种传递关系,即若C[i,j]=1,则奸细i能将消息直接传递给奸细j。现在曹操要发布一个假消息,需要传达给所有奸细,而我们的郭嘉大大则需要传递给尽量少的奸细使所有的奸细都知道这一个消息...

2018-08-30 13:24:00 174

转载 Top_Sort+Floyd实现关键路径

Top_Sort+Floyd实现关键路径#include<iostream>using namespace std;int n,m;int g[5000][5000];int in[5000];int top[5000];int d[5000];void top_sort(){ for(int i=1;i<=n;i++)...

2018-08-30 13:23:00 74

转载 FLoyd算法的扩展

FLoyd算法的扩展Floyd算法是一种求任意点到任意点的最短距离。可以求边权为负值,有向图、无向图等的最短路径。但是边权可以有负权值的边,但不能有包含负权值边组成的回路,不然算出来的就不是正确答案!!这个算法效率很低可以说是暴力。但是这种暴力是带着动态规划的暴力!!但是却不能有边权和为负值的回路上代码#include<cstdio>#includ...

2018-08-30 13:22:00 79

转载 Kosaraju两次深搜实现强连通分量

Kosaraju两次深搜实现强连通分量kosaraju算法进行两次dfs,第一次在原图上进行,并在结点递归调用返回时将结点压入一个栈中,第二次dfs在原图的逆图上进行,并且初始点选择栈中最上面的点,每次dfs所访问的点构成一个强连通分量。第一次看kosaraju算法的时候,我很不解,为什么第二次dfs随便遍历一下就能找到一个强连通分量呢?后来才顿悟,这里关键是选取的遍历起始点...

2018-08-30 13:21:00 219

转载 tarjan——割边与割点

tarjan——割边与割点用Dfn数组记录搜索到该点的时间。Low数组是一个标记数组,记录该点所在的强连通子图所在搜索子树的根节点的Dfn值。以上是有向图的low、dfn定义,实际上无向图与其类似。无向图中,dfn[i]表示DFS过程中到达点i的时间,low[i]表示能通过其他边回到其祖先的最早时间在实际运用之前,先看下列一些定义:割点:在一无向连通图...

2018-08-29 21:14:00 155

转载 最短路SPFA算法

最短路SPFA算法描述:给定M条边,N个点的带权无向图。求1到N的最短路。input:第一行:N,M(N<=100000,M<=500000);接下来M行3个正整数; ai,bi,ci表示ai,bi之间有一条长度为ci的路,ci<=1000。output:一个整数,表示1到N的最短距离。sample.in:4 41 2 12 3 13...

2018-08-29 19:52:00 292

转载 只有五行的算法,Floyd

只有五行的算法,Floyd【最短路径】信使Description  战争时期,前线有n个哨所,每个哨所可能会与其他若干个哨所之间有通信联系。信使负责在哨所之间传递信息,当然,这是要花费一定时间的(以天为单位)。指挥部设在第一个哨所。当指挥部下达一个命令后,指挥部就派出若干个信使向与指挥部相连的哨所送信。当一个哨所接到信后,这个哨所内的信使们也以同样的方式向其他哨所送信。直...

2018-08-29 19:49:00 61

转载 贪心思想——Kruskal

贪心思想——Kruskal求最小生成数还有另一种算法,KruskalKruskal算法运用了贪心的思想,首先是对得到的边集数组进行排序,权值小的边排在前面,这是为之后的贪心做准备工作Kruskal算法的核心思想是:根据权值从小到大遍历每一条边,把原图分为两个集合,每一次判断这一条边的两个端点是否在同一集合,为真,则表明这个点已经在MST中,由于贪心,所以最优,故跳过;为假...

2018-08-29 19:46:00 231

转载 Prim——最小生成树

Prim——最小生成树Description给你一个具有n个点,m条边的无向连通图,求其最小生成树的权值和。Input第一行两个整数n(1<=n<=300)和m,分别表示图的顶点数和边数。接下来m行是每行三个整数u, v, c,表示结点u和v之间有边相连,权值为c(1≤c≤10000)。Output输出文件仅一个整数为最小生成树的权值和。S...

2018-08-29 19:36:00 115

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除