最近过的最短路题目稍微总结一下,顺便写一下模板,最短路算法众多有floyd、dij、bell-man、spfa,速度最快就是dij+优先队列或者dij+堆排序,spfa理论上很快o(ke)但实际并不一定不过spfa传说中有一个很NB用处就是处理带负权回路。
邻接表VS邻接矩阵:根据写题经验,如果可以用矩阵那一定是首选,矩阵速度比表快而且题目出现多重边时矩阵很好解决。
最短路:
拓扑排序:
最短路模版(复杂度O(nlogn))dij+优先队列:
HDU1690
#include<stdio.h>
#include<queue>
#include<string.h>
#define inf 10000000000000
using namespace std;
__int64 mp[101][101];
__int64 d[101];
bool hash[101];
__int64 a[101];
__int64 l1,l2,l3,l4,c1,c2,c3,c4;
__int64 n,m;
__int64 start,end;
typedef struct node
{