![](https://img-blog.csdnimg.cn/20181118103458557.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法与数据结构
对一些算法题目和数据结构的问题的总结,分析。
LazyYangHuan
此人很懒,什么题目都写。
展开
-
全排列问题(可重复排列和不可重复排列)
全排列1. 不可重复全排列全排列问题一般要求按照字典顺序排列出来.例如:1 2 3 1 3 22 1 3 2 3 13 1 2 3 2 1全排列问题一般尝试用递归的方式去做,用 for 循环来解决字典序的问题.#include <cstdio>using namespace std;const int N=1024;int...原创 2018-12-28 20:49:53 · 12986 阅读 · 1 评论 -
LIS、LDS模板
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<functional>using namespace std;const int N = 131072;int a[N];int LIS_regular (int...原创 2018-12-27 22:11:59 · 268 阅读 · 0 评论 -
并查集 延伸
1.种类并查集从食物链,发现的新名词。我们可以把它看做是一种特殊的并查集,适用于判断多个种类是否存在关系的情况。简单想法下的解题步骤是把一个集合分成几段,有几个种类就分成几段。食物链这题按照数据量分为三个区间段 1--n, n+1--2*n , 2*n+1--3n.把他看作是A,B,C。但是我们不知道到底是那两个种类的关系,所以我们都试一试。举例:1 2 31表示2,3...原创 2018-11-22 21:48:30 · 114 阅读 · 0 评论 -
无环图的最短路和最长路径
1.DAG最短路(基于拓扑排序优化的Dijkstra算法)拓扑排序给予了我们查找顺序的正确性,也减少了不必要的查找.(1)先对路径长度数组初始化,源点为0,其余为无穷大(这里用100000代替)。(2)对图进行遍历,因为有n个点,外部循环n次。每个点e个边内部循环e次(复杂度O(N+E))。按照拓扑排序进行遍历。第一个点必然是源点,对从源点的每一个邻接顶点进行更新。第二个点必然...原创 2018-11-21 18:42:34 · 4868 阅读 · 0 评论 -
拓扑排序 (TopSort)
拓扑排序是DAG(无圈有向图)引出的新概念,它是对DAG图的顶点的一种排序。如果图中存在两点 vi --> vj,拓扑排序保证排序结果,vj出现在vi后面。我们可以用这个特性来解决优先级问题。而且,如果这个图有圈,我们的拓扑排序将会失败。当然拓扑排序结果也并不唯一。 对于拓扑排序,我们先对每一个顶点计算入度,然后将入度为0的顶点放入队列。当队列不空,删除队首顶点,并把与队首顶...原创 2018-11-20 15:49:02 · 701 阅读 · 0 评论