图论
文章平均质量分 73
lastone_rt
这个作者很懒,什么都没留下…
展开
-
CodeForces 508D DFS打印欧拉路径
题意很简单,这是一个欧拉路的题目。要注意的是,打印欧拉路径的递归方法,之前一直用 bool dfs(int i) 的递归方法,如果遇到死路就返回假,再继续递归,直到找到返回值为真的路径。但无疑这样数据量一大就会超时。并且对节点的保存也存在不足。后来看到别人代码,写的很精简:尤其要注意其递归方法,把输出字符倒着装进string,然后reverse一下!!!!还有把两个字符转原创 2015-08-18 11:48:52 · 692 阅读 · 0 评论 -
AC 自动机
学习AC自动机的前提是要会trie数和KMP字符串匹配, 它的功能是能对好多个模式串进行同时查找。比如对4个模式串:hehershisshe在一条母串中:shejjjjj 查找每个模式串出现的次数.我们知道KMP算法有个next数组,和KMP类似,AC自动机有一个fail指针数组,用来对整棵trie树进行滚动。AC 自动机:HUD 3065:#i原创 2015-09-10 21:17:43 · 800 阅读 · 0 评论 -
最小树形图*
最小生成树、次小生成树是基于无向图的,而最小树形图是基于有向图的。最小树形图:以固定一点为根生成的树的所有边权和最小称为最小树形图。1、找到除了root以为其他点的权值最小的入边。用In[i]记录2、如果出现除了root以为存在其他孤立的点,则不存在最小树形图。3、找到图中所有的环,并对环进行缩点,重新编号。4、更新其他点到环上的点的距离,如:环原创 2015-10-30 16:12:39 · 425 阅读 · 0 评论 -
最短路
最短路问题包括:单源最短路、每两点最短路。 一、单源最短路:Dijkstra算法、Bellman-Ford算法、SPFA算法 1、Dijkstra算法 --- 只能处理正边权图 (1) 原始Dijkstra算法:O(n^2)。 (2) 使用优先队列优化的Dijkstra算法:O(E*logE): 想象成从源原创 2015-10-30 16:01:33 · 383 阅读 · 0 评论 -
最小生成树
包含:Kruskal算法、Prim算法。 一、Kruskal算法 先对所有边进行排序,从小到大遍历每一条边e,如果e.u和e.v在不同的强连通分量(使用并查集),那么就选上边e,并合并两个强连通分量(更新并查集)。 二、Prim算法 1、(初始化)任意选取一个起点,把它设为标记点,其它点设为未标记点。 2、在所有连接标记点和未标记点的边中原创 2015-10-30 16:02:46 · 333 阅读 · 0 评论 -
次小生成树
次小生成树定义:对于图G,设它的最小生成树为T,那么G的所有生成树中,除T以外的权值最小的生成树称为次小生成树。 次小生成树基于最小生成树的算法。 /** 次小生成树* 求最小生成树时,用数组Max[i][j]来表示MST中i到j最大边权* 求完后,直接枚举所有不在MST中的边,替换掉最大边权的边,更新答案* 点的编号从0开始*/原创 2015-10-30 16:07:53 · 327 阅读 · 0 评论 -
ACdream 1415 最短路+桥的判断
Important RoadsProblem Description The city where Georgie lives has n junctions some of which are connected by bidirectional roads. Every day Georgie drives from his home to work and back. But the r原创 2016-06-21 09:55:38 · 816 阅读 · 0 评论