这道题居然卡SPFA,难受,写了这么长时间的SPFA,都快把dij忘光了; 设d[i][j]为修j条路到i的最短距离,然后跑堆优化dij就行了; 实测中SPFA两组大数据超时严重; dij约300ms一组大数据; 但是总感觉这个堆优化dij和SPFA好相像啊,奇怪; 1 #include<iostr ...
分类:
其他好文 时间:
2016-09-11 18:39:36
阅读次数:
274
循环队列基础知识 1.循环队列需要几个参数来确定 循环队列需要2个参数,front和rear 2.循环队列各个参数的含义 (1)队列初始化时,front和rear值都为零; (2)当队列不为空时,front指向队列的第一个元素,rear指向队列最后一个元素的下一个位置; (3)当队列为空时,fron ...
分类:
其他好文 时间:
2016-08-25 20:58:33
阅读次数:
225
嗯 有广搜的意思 #include<cstdio> #include<iostream> #include<queue> #include<vector> #define maxn 1001 #define inf 9999999 using namespace std; struct vec // ...
分类:
Web程序 时间:
2016-08-24 17:26:29
阅读次数:
157
SPFA在求最短路时不是万能的。在稠密图时用堆优化的dijkstra更加高效: 1 typedef pair<int,int> pii; 2 priority_queue<pii, vector<pii>, greater<pii> > q 3 void dijkstra(){ 4 memset(d ...
分类:
其他好文 时间:
2016-08-21 15:20:57
阅读次数:
265
dijkstra(迪杰斯特拉)最短路算法是一种时间复杂度经过严格证明的最短路算法。 优化在于每次取最小值的时候采用堆优化,但是在最短路松弛过程中,dist是不断修改的,所以,为了能使复杂度降到O(nlogn),dist修改的同时,在堆中也要修改。 注意dijkstra(迪杰斯特拉)最短路算法只能用于 ...
分类:
编程语言 时间:
2016-08-17 10:18:28
阅读次数:
770
dijkstral堆优化算法 struct node { int u,d; node(int u=0,int d=0):u(u),d(d){} bool operator < (const node& t) const{ return d>t.d; } }; struct edge { int u, ...
分类:
编程语言 时间:
2016-08-17 09:00:44
阅读次数:
284
Invitation Cards
Time Limit: 8000MS
Memory Limit: 262144K
Total Submissions: 25219
Accepted: 8346
Description
In the age of television, not many people attend theat...
分类:
编程语言 时间:
2016-08-15 19:14:50
阅读次数:
205
Big Christmas Tree
Time Limit: 3000MS
Memory Limit: 131072K
Total Submissions: 23064
Accepted: 4987
Description
Christmas is coming to KCM city. Suby the loyal ci...
分类:
编程语言 时间:
2016-08-09 17:32:55
阅读次数:
406
前言Dijkstra算法用于求指定顶点到其他顶点的最短距离,时间复杂度O(N^2),据说可以使用堆优化到O(log N),然而还不会。
其特点是(对我来说)非常容易求得路径,和对应的距离。
缺陷也是存在的,此算法不能处理负权边。即距离为负时,就挂了。
此文内容同样参考《啊哈,算法》另外个人感觉代码可能有错,还望有心人指点。功能实现输入一个顶点输出路径
输出与路径对应的距离
如果存在不可到达...
分类:
编程语言 时间:
2016-07-21 13:05:09
阅读次数:
365
建立平面图的对偶图,把最小割转化成最短路问题 Dijkstra算法堆优化 (被输入顺序搞WA了好几次T_T) ...
分类:
其他好文 时间:
2016-06-22 20:15:48
阅读次数:
239