图的储存方式有三种 一。邻接矩阵 优点:简洁明了,调用方便,简单易写; 缺点:内存占用大,而且没办法存重边(可能可以,但我不会),点的个数超过 3000 直接爆炸 适用范围:点的个数少,稠密图,一般结合floyed使用,可以传递闭包。 代码: 二。邻接表 优点:占用空间小,可以快速查找每个点的出度, ...
分类:
其他好文 时间:
2019-08-24 13:17:58
阅读次数:
118
题目链接: POJ 1094 题目大意:有 1 ~ N 个大写字母,且从 A 开始依次 N 个。再给你 M 个小于的关系,比如 A < B ,让你判断三种可能: 1、在第 i 个关系罗列之后,是否可以满足使得这 N 个字母能递增关系。 2、在第 i 个罗列之后,是否会出现矛盾,例如 A > B,而在 ...
分类:
编程语言 时间:
2019-08-22 18:42:06
阅读次数:
106
题目链接: POJ 2594 题目大意:给你 1~N 个点, M 条有向边。问你最少需要多少个机器人,让它们走完所有节点,不同的机器人可以走过同样的一条路,图保证为 DAG。 很明显是 最小可相交路径覆盖 问题。要先通过闭包建图后,再当作 最小不可交路径覆盖 问题 求解即可。 原因: 与 最小不可交 ...
分类:
其他好文 时间:
2019-08-22 13:28:25
阅读次数:
100
题目:输入n头牛,m个关系。接下来m行每行两个int数a,b,代表a可以打败b 问:能确定多少头牛的排名 思路:floyd算法可以判断传递闭包问题(通过传递性推导出尽量多的元素之间的关系叫做传递闭包),模板题 ...
分类:
其他好文 时间:
2019-08-17 23:58:34
阅读次数:
169
Gym100889Lhttps://vjudge.net/problem/341988/origin题目大意:有一个n*n的图,m条双向边(没有重边自环),求从每个节点出发走k条路后到其他所有节点的最短距离和方案数,方案数取模1e9+7输出做法:传递闭包,走k条路,就是做k次矩阵乘法,所谓矩阵乘法就 ...
分类:
其他好文 时间:
2019-07-31 23:49:36
阅读次数:
97
求最长反链(链上任意两个点不连通),可以发现,最长反链=最小链覆盖(因为每一条链都最多只有一个点入选),而DAG的最小链覆盖也就是最小路径覆盖(可相交)。然后floyd传递闭包,将任意两个连通的点都连一条边,这样就变成不可相交的最小路径覆盖(可以绕过去)。 不可相交的最小路径覆盖:将每一个点裂成两个 ...
分类:
其他好文 时间:
2019-07-28 10:59:58
阅读次数:
92
首先看这个范围很夸张但是其实有限制的也就在1e18\ n范围里(走完一圈的边权),然后限制一定是有负环 用Floyd传递闭包,然后设f[i][j][k]为从1走了i步到j并且有k个x的最短路,用B F处理,然后有负环就是kx+f[n][i][k] include include include in ...
分类:
数据库 时间:
2019-06-14 21:58:15
阅读次数:
120
Floyd算法(Floyd-Warshall algorithm)又称为弗洛伊德算法、插点法,是解决给定的加权图中顶点间的最短路径的一种算法,可以正确处理有向图或负权的最短路径问题,同时也被用于计算有向图的传递闭包。该算法名称以创始人之一、1978年图灵奖获得者、斯坦福大学计算机科学系教授罗伯特·弗 ...
分类:
编程语言 时间:
2019-06-10 21:09:48
阅读次数:
218
传递闭包 在数学中,在集合 X 上的二元关系 R 的传递闭包是包含 R 的 X 上的最小的传递关系。 例如,如果 X 是(生或死)人的集合而 R 是关系“为父子”,则 R 的传递闭包是关系“x 是 y 的祖先”。再比如,如果 X 是空港的集合而关系 xRy 为“从空港 x 到空港 y 有直航”,则 ...
分类:
编程语言 时间:
2019-05-18 20:35:29
阅读次数:
158
PREFACE 也许是OI生涯最后一场正式比赛了,说是省选前模板,其实都是非常基础的东西,穿插了英文介绍和部分代码实现 祝各位参加JXOI2019的都加油吧 也希望今年JX能翻身,在国赛中夺金 数学知识 见 "数学知识小结" 字符串 KMP算法Knuth Morris Pratt Algorithm ...
分类:
其他好文 时间:
2019-05-10 23:16:30
阅读次数:
165