floyd/dijkstra/bellmanford/spaf 模板: 1. floyd(不能处理负权环,时间复杂度为O(n^3), 空间复杂度为O(n^2)) floyd算法的本质是dp,用dp[k][i][j]表示以(1....k)为中间点,i, j之间的最短距离为多少,dp[0][i][j]即 ...
分类:
其他好文 时间:
2017-03-08 22:35:05
阅读次数:
164
转自:http://www.cnblogs.com/biyeymyhjob/archive/2012/07/31/2615833.html Dijkstra算法 1.定义概览 Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中 ...
分类:
编程语言 时间:
2017-03-08 13:49:57
阅读次数:
164
本文转自链接:http://www.cnblogs.com/Ash-ly/p/5920953.html Floyd算法: Floyd算法用来找出每对顶点之间的最短距离,它对图的要求是,既可以是无向图也可以是有向图,边权可以为负,但是不能存在负环(可根据最小环的正负来判定). 基本算法: Floyd算 ...
分类:
编程语言 时间:
2017-03-08 12:58:40
阅读次数:
183
题目大意: 题解:很明显建图之后Floyd一下即可。 首先根据勾股定理,可以求出两点之间的距离为√(x1-x2)2(y1-y2)2,然后根据长方形内的三个点求出第四个点,也是根据勾股定理,先求出三个点之中每两个点之间的距离,即b1=√(x1-x2)2(y1-y2)2,b2=√(x1-x3)2(y1- ...
分类:
其他好文 时间:
2017-03-08 00:50:18
阅读次数:
186
题目链接:http://poj.org/problem?id=1797 题意:给出两只青蛙的坐标A、B,和其他的n-2个坐标,任一两个坐标点间都是双向连通的。显然从A到B存在至少一条的通路,每一条通路的元素都是这条通路中前后两个点的距离,这些距离中又有一个最大距离。现在要求求出所有通路的最大距离,并 ...
分类:
其他好文 时间:
2017-03-07 00:07:49
阅读次数:
213
【算法】状态压缩型动态规划 【题解】http://blog.csdn.net/harryguo2012/article/details/42175559(初始不算经过起点1的话,答案就是f[1][(1<<n)-1]) 先跑一遍floyd后就不用再纠结重复经过的问题了!!! 然后就转化为经典状压问题。 ...
分类:
其他好文 时间:
2017-03-05 14:17:20
阅读次数:
160
https://vjudge.net/problem/UVA-1001 题意:一个奶酪里有n个洞,老鼠在奶酪里的移动速度为10秒一个单位,但是在洞里可以瞬间移动。计算出老鼠从A点到达O点所需的最短时间。 思路:最短路问题。 我们可以把起点和终点也看成是两个洞,半径为0。这样每个洞就代表了一个点,对于 ...
分类:
其他好文 时间:
2017-03-05 00:06:53
阅读次数:
219
题目链接:hdu 1704 Rank 题意: 有n个人,m场比赛,a与b打,每场都是awin,问不能确定其中两个人的win情况数。 题解: floyd传递闭包,这里我用bitset优化了一下。 1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int ...
分类:
其他好文 时间:
2017-03-03 19:12:16
阅读次数:
233
题意:给定一张无向图,有K个人,每一时刻K个人可以同时走(也可以停在一个节点),在到达i之前必须先到达i-1,求从0到N,K个人走的最小距离和(只需一个人到达即可) 题解: 用Floyd跑出任意两个城市i j间的最短路,更新的前提是k<j(要到达城市j必须先到达1->j-1) 将每个城市拆成两个点A ...
分类:
其他好文 时间:
2017-03-01 00:11:01
阅读次数:
222
题意:求恰好经过K条边的最短路 题解:根据Floyd的性质,如果我拿一开始给出的两个边权矩阵(只经过一条边的最短路的邻接矩阵)跑Floyd,得到的一定是只经过两条边的最短路的邻接矩阵(普通的Floyd是用求出的最短路来更新最短路而非用初始矩阵),同理用两条边的邻接矩阵一定能得到四条边的,因此N条边的 ...
分类:
其他好文 时间:
2017-02-28 00:39:43
阅读次数:
154