#include
#include
#include
#include
#include
#include
#define inf 0x3f3f3f3f
using
namespace std;
const
int maxn =
105;
int dis[maxn]
, pre[maxn]
;struct edge//邊
;edge
(int uu,
int vv,
int ww):u
(uu),v
(vv),w
(ww);}
;vector edges;
//邊陣列
vector<
int> g[maxn]
;//儲存每個節點對應的邊的序號
void
init
(int nn)
//清理
void
addedge
(int uu,
int vv,
int ww)
//加邊
struct node//優先佇列優化,dis小的先出隊
;node
(int uu,
int dd):u
(uu),d
(dd)
;friend
bool
operator
<
(node a, node b)};
void
dijkstra
(int s)}}
}int
main()
dijkstra(1
);printf
("%d\n"
, dis[n]);
}return0;
}
#include
#include
#include
#include
#include
#include
#define inf 0x3f3f3f3f
using
namespace std;
intmain()
for(
int i =
0; i < m; i++
)//輸入邊a,b兩點的權值是x
scanf
("%d%d"
,&s,
&t);
for(
int k =
0; k < n; k++
)for
(int i =
0; i < n; i++
)for
(int j =
0; j < n; j++)if
(dis[s]
[t]!= inf)
//可以求任意兩點間最短路
printf
("%d\n"
, dis[s]
[t])
;else
printf
("-1\n");
}return0;
}
#include
#include
#include
#include
#include
#define inf 0x3f3f3f3f
using
namespace std;
int dis[
105]
,visit[
105]
;int n,m;
class
node};
vectors[
105]
;void
spfa()
}}}int
main()
spfa()
; cout<<}return0;
}
最短路模板
1.dijkstra演算法 演算法思想 從某乙個點開始,找與它距離最近的乙個點,然後更新所有點到這條路徑的距離,然後再次選取乙個距離上乙個點路徑最短的點,將其加入路徑,以此進行,直到求出起點到所有點的最短距離.注意 權值不能為負,如圖 1到3的距離應該是零,但這裡結果為一 1 鄰接矩陣 複雜度 o ...
最短路模板
週六週日tyvj上有模擬賽 順便逃了周練 霧 複習了一下圖論裡的基本演算法 彷彿第一次寫最短路的手生 寫的太少了 orz dijkstra include define maxn 10001 define maxm 300001 using namespace std template void r...
最短路模板
最短路模板 思路 開乙個陣列dis i 一開始把陣列全初始化為極大值,表示離源點的距離為無窮大 表示 i 點到源點的最短距離。一開始把與源點直接相鄰的點和源點的距離存入dis i 陣列,再在dis陣列中找到乙個最小值,並標記。顯然該標記點離源點是最近的。而其他點經過該標記點到源點的距離可能比直接原點...