摘要:
~~这篇题解来源于一个大胆的想法~~ 桶排序有着极高的运行速度,却是一种用空间换时间的算法,具有很大的局限性,无法用来排太大的数据 于是,用map代替数组,以时间换空间,达到扩大实用性的目的 C++STL中map可以当作数组来用,类比桶排序,但是因为map是动态申请储存空间,相当于自动离散化,解决以 阅读全文
摘要:
请点击目录中的算法 (1). MST 1. "Prim算法" 2. "Kruskal算法" (2). 最短路径 1. "Floyd算法" 2. Dijkstra算法 3. "SPFA算法" 4. Bellman ford算法 (3). 强连通分量 1. "Tarjan算法(转载)" 2. "Kosa 阅读全文
摘要:
ST——LCA在线算法 【LCA练习】最近公共祖先(版本1) Description 给你一棵有根树,要求你计算出m对结点的最近公共祖先。 Input 输入文件的第一行包含两个整数n和m(2<=n,m<=200,000),其中n为结点个数,结点编号为1到n;m表示询问次数。 接下来n-1行,每行两个 阅读全文
摘要:
STL链表list 作为STL中的另一神器——链表list,你不可不知! (1).优势和劣势 1. 优势:功能众多,使用便利,插入删除快速 2. 劣势:功能太多,令人眼花缭乱,难以分辨 (2).用法 1.构造 list<int> l 建立一个空链表l list<int> l(length,num) 阅读全文
摘要:
STL集合set set是STL中的神器之一,它有两个功能 (1).排序 (2).去重 一.操作方法(需要头文件 set ) (1). 定义 set<int> s 定义一个整型的集合s (2). 插入和删除 s.insert(元素) 在s中插入一个元素 s.erase(数值) 删除集合s中等于这一数 阅读全文
摘要:
STL队列queue的扩展——优先队列 1. 优先队列的使用 优先队列有类似于堆的作用,因此,优先队列也分为大根堆和小根堆 队列中的元素会自动进行排序 接下来谈谈它们的使用方法: (1).定义 1.priority_queue<int> q 定义一个整型的大根堆q 2.priority_queue< 阅读全文
摘要:
STL队列queue的扩展——双端队列 你是否还苦恼与STL中队列的单边 插 入 别怕,deque来拯救你了 deque是一种能够支持双端插入的链式储存结构,使用起来十分方便 c++STL提供了以下几种操作: (1).定义 deque<类型> q 定义一个某种类型的双端队列 (2).压入和弹出 一. 阅读全文
摘要:
c++常见的STL容器 1 队列—queue 我想很多人都知道这个神器—queue 队列queue(FIFO),!!需要头文件 #incldue<queue> 有几种常见操作: 1.queue<类型> q 定义一个某类型的队列q 2.q.push(元素) 把一个元素压入队列q的队首 3.q.pop( 阅读全文
摘要:
Tarjan算法 消息的传递 描述: 我们的郭嘉大大在曹操这过得逍遥自在,但是有一天曹操给了他一个任务,在建邺城内有N(<=1000)个袁绍的奸细,将他们从1到N进行编号,同时他们之间存在一种传递关系,即若C[i,j]=1,则奸细i能将消息直接传递给奸细j。现在曹操要发布一个假消息,需要传达给所有奸 阅读全文
摘要:
Top_Sort+Floyd实现关键路径 阅读全文