
==模板==
LOI_Q
“愿我们合上笔盖的刹那,有着侠客收剑入鞘的骄傲。”
展开
-
2017.9.6 复习之 toposort
codevs 2833(For example:选课问题:在学习一门课前,必须先学另一门课(基础课)) Ⅰ.普通#include<iostream>#include<cstdio>#include<cstring>#define maxx 105using namespace std;int indegree[maxx],mapp[maxx][maxx],n,m;void find(int原创 2017-09-06 19:51:40 · 295 阅读 · 0 评论 -
2017.9.9 图论 — 最小生成树
Kruskal: 按照边的权值的顺序从小到大查一遍,若不产生圈(重边等),则把当前边加入生成树中。 O(|E|log|V|)#include<iostream>#include<cstdio>#include<algorithm>using namespace std;int n,m;int fa[10005];struct bian{ int f,t,d;}e[10005];原创 2017-09-09 08:49:39 · 337 阅读 · 0 评论 -
2017.9.9 图论 — 最短路(修邻接表bug---10.20)
Dijkstra://不能解决有负边权的图//从起点一层层向下更新//与spfa(靠队列实现)相似,源点是一定的,but 实现方式不同 #include<cstdio>#define Max 0x3fffffffint map[1005][1005];int dis[1005];void dijkstra(int n){ int visit[1001]={0}; int原创 2017-09-09 08:58:53 · 342 阅读 · 0 评论 -
并查集 (不相交集数据结构)
来源于《啊哈!算法》//给出几个人的联系,求有几个团伙 #include<cstdio>using namespace std;int f[1000]={0},n,m,k,sum;//sum:团伙数 //初始化,数组里面存自己数组下标的编号 void init(){ int i; for(int i=1;i<=n;i++) f[i]=i; return ;}原创 2017-09-24 08:34:13 · 596 阅读 · 0 评论 -
树+最小生成树
**树 ** 树: 不包含回路的连通无向图(从一个点到达另一个点,若想回去,只能原路返回),即任意两个节点间有且只有一条路径的无向图特性: 1.一条树中的任意两个节点有且仅有唯一的一条路径连通 2.一棵树中如果有n个节点,那么它一定恰好有n-1条边 3.在一棵树中加一条边将会构成一个回路部分定义: 根结点(祖先):没有父结点 叶结点:没有子结点 内部结点:既不是根结点,也不是叶结点原创 2017-09-29 09:48:33 · 473 阅读 · 0 评论 -
刷版子·总结(待补全......)
最短路最短路: spfa//期望的时间复杂度为o(ke),k为所有顶点的进队次数,k一般<=2 #include<iostream>#include<cstdio>#include<queue>#include<cstring>#define maxn 1000001#define inf 0x7ffffffusing namespace std;//尽量用nxt别用next,有原创 2017-10-21 19:43:10 · 345 阅读 · 0 评论 -
最近公共祖先:LCA及其用倍增实现 +POJ1986
原网址:http://www.cnblogs.com/sllr15/p/5164996.html (侵权请告知,必删)Q:为什么我在有些地方看到的是最小公共祖先?A:最小公共祖先是LCA(Least Common Ancestor)的英文直译,最小公共祖先与最近公共祖先只是叫法不同。Q:什么是最近公共祖先(LCA)?A:最近公共祖先的概念是很好理解的。首先,你需要脑补出一棵树(它可以是二叉树,也可转载 2017-11-03 07:31:52 · 361 阅读 · 0 评论 -
KMP-字符串匹配
模式匹配算法,不退化地在线性时间内完成模式匹配目的:在目标串中找到模式串 作用:预处理出模式串的匹配信息,节省不必要的匹配时间比如:有两个串 aacdeeaacc aacc 先匹配第一位,发现匹配,再匹配第二位,第三位,直到第四位不符合,此时,将搜索词aacc后移一位,重复上述操作,可以看出,后面的a【acdee】aacc acdee是没有必要比较的,可以直接匹配后面的aacc,所原创 2017-10-07 19:59:50 · 248 阅读 · 0 评论 -
拓扑排序
*1、定义: 对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前。 即:按照出现的先后顺序排列**2.步骤: (1) 选择一个入度为0的顶点并输出;(2) 从图中删除此点及其所有出边,即该点及所有与该点相邻的点的入度-1。循环结束后,若输出原创 2017-08-16 14:09:00 · 332 阅读 · 0 评论 -
线段树部分操作
sys学长 ←orz http://loisys.cc/oi/template/segment_tree/#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cstdlib>using namespace std;typedef long long LL;const int ma原创 2017-08-09 10:40:44 · 210 阅读 · 0 评论