在我们生活的世界中,每一个人以及每一个事物相互之间都存在着关系,有直接关系,也有间接关系,最终会形成一个无形的大的关系网。network模块是一个用python语言开发的图论和复杂网络建模工具,模块内置了常用的图与复杂网络分析算法。network模块有四种图:Graph、DiGraph、MultiG ...
分类:
编程语言 时间:
2020-06-17 01:21:27
阅读次数:
106
概述篇 LCA (Least Common Ancestors) ,即最近公共祖先,是指这样的一个问题:在一棵有根树中,找出某两个节点 u 和 v 最近的公共祖先。 LCA 可分为在线算法与离线算法 **在线算法:**指程序可以以序列化的方式一个一个处理输入,也就是说在一开始并不需要知道所有的输入。 ...
分类:
其他好文 时间:
2020-06-16 23:42:20
阅读次数:
236
这题非常好。。看似很简单其实比较复杂,交了一堆假算法全wa了。。 看题解也好久才弄明白 /* 给定一张有向图,确定一个点T,问有多少T0,满足所有T0->T的路径,都经过边(T0,T) 建立反图,T变为起点,求所有T0,满足T->T0所有路径都经过(T,T0) 首先确定用bfs,我们从每个和T连边T ...
分类:
其他好文 时间:
2020-06-14 14:24:22
阅读次数:
81
思考了挺久的一题,主要卡在建图这一块,序列上的问题很难想到图论上。。 可以交换位置是一种关系,那么不能交换也是一种关系:两个不是朋友的点,相对位置保持不变! 不能交换的关系的两点就可以连边,在图上u->v就表示u一定在v前面 但是这样暴力建图显然会炸,我们再进行优化: 我们把动物i(设物种x)和其后 ...
分类:
编程语言 时间:
2020-06-14 00:58:46
阅读次数:
69
图论的约定和表述 给定图$G \ = \ (V,E)\(,以图的结点数\)|V|\(与边的条数\)|E|$作为输入的规模,同时,仅当在渐近符号(如大$O$表示或大$\Theta$表示)中,符号$V$表示$|V|$,符号$E$表示$|E|$,比如我们说算法的时间复杂度为$O(VE)$,同时,用$G.V ...
分类:
其他好文 时间:
2020-06-12 00:39:11
阅读次数:
50
近期在队友的影响下,开始学习《算法竞赛进阶指南》这本书。对于本来就有一定算法基础的我来说,这本书不论是对于学习不常见的新算法还是对于基础算法的巩固都有很大的帮助。其中,数据结构和图论的一些巧妙的算法令我非常感兴趣。 就数据结构方面的算法来说,线段树在书中是一个重头,这个算法在维护区间上有着很优秀的时 ...
分类:
编程语言 时间:
2020-06-10 19:15:05
阅读次数:
71
概念定义: 深度优先遍历:深度优先遍历是图论中的经典算法。其利用了深度优先搜索算法可以产生目标图的相应拓扑排序表,采用拓扑排序表可以解决很多相关的图论问题,如最大路径问题等等。 根据深度优先遍历的特点我们利用Java集合类的栈Stack先进后出的特点来实现。我用二叉树来进行深度优先搜索。 广度优先遍 ...
分类:
编程语言 时间:
2020-06-07 21:24:16
阅读次数:
77
最短路算法(一) 最短路算法有三种形态:Floyd算法,Shortset Path Fast Algorithm(SPFA)算法,Dijkstra算法。 我个人打算分三次把这三个算法介绍完。 (毕竟写太长了又没有人看QAQ……)但是这篇博客好像又双叒叕写的有点长,真的请各位耐心看完QAQ 今天先来介 ...
分类:
编程语言 时间:
2020-06-05 22:39:09
阅读次数:
82
总目录 > 8 图论 > 8.3 最小生成树 前言 树与图的紧密联系通过这一部分的内容就很好诠释了!名为生成树,实为图上问题,可以理解为由一张图生成一棵树。 子目录列表 1、连通图与生成树 2、最小生成树 3、Kruskal 算法 4、Prim 算法 8.3 最小生成树 1、连通图与生成树 在 8. ...
分类:
其他好文 时间:
2020-06-05 00:42:24
阅读次数:
94
约定 我是怎么存图的呢? 普通的邻接表。 const int N = 1e5+15; // 点数 const int M = 1e6+15; // 边数 int ct,hd[N],nt[M<<1],vr[M<<1],vl[M<<1]; void ad(int a,int b,int c) { // ...
分类:
编程语言 时间:
2020-06-03 21:57:14
阅读次数:
98