模板題(最短路Dijkstra演算法)
#include<bits/stdc++.h> #define inf 1e9 using namespace std; int mmap[105][105]; int dis[105];// 記錄某個點到vis集合的最短路 int vis[105];//vis記錄某個點是否已經包含在已找到最短路的集合中 int main() { int n,m;//n個路口;m條邊 while(cin>>n>>m&&(n+m)) { memset(vis,0,sizeof(vis)); int a,b,c; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) mmap[i][j]=inf; fill(dis+1,dis+n+1,inf); for(int i=1; i<=m; i++) { cin>>a>>b>>c; mmap[a][b]=mmap[b][a]=c; } vis[1]=1; for(int i=1; i<=n; i++) dis[i]=mmap[1][i]; while(1) { int mmin=inf; int nextin=0;//不存在0號路口 for(int i=1; i<=n; i++) { if(vis[i]==0&&dis[i]<mmin) { mmin=dis[i]; nextin=i; } } if(nextin==0) { break; //沒有下一個nextin點,說明所以點都找到了自己的最短路 } vis[nextin]=1;//把nextin加入已找到最短路的點的集合 //加入nextin後,更新dis陣列 for(int i=1; i<=n; i++) { if(dis[nextin]+mmap[nextin][i]<dis[i]) dis[i]=dis[nextin]+mmap[nextin][i]; } } cout<<dis[n]<<endl; } }
相關推薦
模板題(最短路Dijkstra演算法)
#include<bits/stdc++.h> #define inf 1e9 using namespace std; int mmap[105][105]; int dis[105];// 記錄某個點到vis集合的最短路 int vis[105];
【POJ - 3255】Roadblocks(次短路 Dijkstra演算法)
Roadblocks 直接翻譯了 Descriptions Bessie搬到了一個新的農場,有時候他會回去看他的老朋友。但是他不想很快的回去,他喜歡欣賞沿途的風景,所以他會選擇次短路,因為她知道一定有一條次短路。這個鄉村有R(1<=R<=100000)條雙向道路,每一條連線N(1<=N
藍書(演算法競賽進階指南)刷題記錄——POJ3613 Cow Replays(最短路+矩陣乘法)
題目:POJ3613. 題目大意:給出一張圖,然你求出經過N條邊後,S到T的最短路. 這道題一開始覺得挺容易的,用f[i][j]表示從起點到點i經過j的最短路,不斷更新就可以了. 但是突然發現數據巨大根本跑不過去... 然後就開始看書上的題解了... 書上居然要用矩陣乘法,好
藍書(演算法競賽進階指南)刷題記錄——CH0602 黑暗城堡(最短路樹計數)
題目大意:給出一張圖,求這張圖不同最短路樹的形態.期中最短路樹指的是對於任意一個點i,樹上1到i的路徑長度等於圖上1到i的最短路徑長度的生成樹. 我們發現這棵生成樹必須滿足的條件其實就是以1為根,1到任意一個點的路徑長度要是原圖的一條最短路. 我們用dis[i]表示原
最短路dijkstra演算法詳解:dijkstra(圖解)(詳
本人小白,如果有寫的不恰當的地方,還請大家指出,共同進步學習。 ---------------------------------------------------------------------------------------------------------
(複習)圖論--最短路--Dijkstra演算法
定義:迪傑斯特拉演算法是由荷蘭電腦科學家狄克斯特拉於1959 年提出的,因此又叫狄克斯特拉演算法。是從一個頂點到其餘各頂點的最短路徑演算法,解決的是有向圖中最短路徑問題。迪傑斯特拉演算法主要特點是以起始
訓練指南 UVA - 11374(最短路Dijkstra + 記錄路徑 + 模板)
edge n-1 code ase 最短 ios 就是 swap gets layout: post title: 訓練指南 UVA - 11374(最短路Dijkstra + 記錄路徑 + 模板) author: "luowentaoaa" cata
牛客國慶集訓派對Day3 I(多源多匯最短路dijkstra變種)
Metropolis 時間限制:C/C++ 1秒,其他語言2秒 空間限制:C/C++ 524288K,其他語言1048576K 64bit IO Format: %lld 題目描述 魔方國有n座城市,編號為。城市之間通過n-1條無向道路連線,形成一個樹形結構。 在若
HDU2544——最短路(最短路Dijkstra)
題意描述:A,B為路口編號,C為AB之間的權值,計算最短路 /*Dijstra相對於Floyd效率還是高了很多的,它的主題思想為 從源點出發,找距離它最短的一個點,再以這個點為跳板,找離跳板最近的點 當不能繼續進行時,再次回到源點,找第二小的點,重複操作,直到所有的點
find the safest road(最短路dijkstra)
XX星球有很多城市,每個城市之間有一條或多條飛行通道,但是並不是所有的路都是很安全的,每一條路有一個安全係數s,s是在 0 和 1 間的實數(包括0,1),一條從u 到 v 的通道P 的安全度為Safe(P) = s(e1)*s(e2)…*s(ek) e1,e2,ek是P 上
Silver Cow Party(最短路 + Dijkstra + 鄰接表 + 優先佇列)
Silver Cow Party Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 11348 Accepted: 5077 Description One cow from each of N farms (1 ≤ N
訓練指南 UVA - 10917(最短路Dijkstra + 基礎DP)
多次 i++ 記憶化 上一條 是否 而且 false 點列 type layout: post title: 訓練指南 UVA - 10917(最短路Dijkstra + 基礎DP) author: "luowentaoaa" catalog: tru
訓練指南 UVALive - 4080(最短路Dijkstra + 邊修改 + 最短路樹)
連通 列表 struct tle 枚舉 有用 tin ++ pro layout: post title: 訓練指南 UVALive - 4080(最短路Dijkstra + 邊修改 + 最短路樹) author: "luowentaoaa" cata
HDU-2433 Travel(最短路[Dijkstra])
Travel Time Limit: 10000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem Description One day, Tom tra
New Game! (最短路+建圖)
std fab pre lse quest map n) 位置 str New Game! https://www.nowcoder.com/acm/contest/201/L 題目描述 Eagle Jump公司正在開發一款新的遊戲。Hifumi Takimoto作為其中
訪問(最短路+搜尋剪枝)
2247: 訪問(deliver) 題目描述 給你一個n個頂點的鄰接矩陣(圖),以及每個頂點的訪問時限,要求從頂點1開始,尋找一個訪問序列,要求在每個頂點的訪問時限之前訪問,且每個頂點的訪問時間之和最小 輸入 第一行一個數n,2&l
POJ2387 Til the Cows Come Home【最短路 Dijkstra演算法】
Til the Cows Come Home Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 76034
HDU - 2112 HDU Today(最短路 dijkstra)
題目連結 題意:找兩個城市之間的最短路,沒有就輸出-1; 簡單題,把城市轉成數字做就行,但有坑點:起點和終點可以相同; #include <iostream> #include <cstdio> #include <string> #
Gym - 101986F Pizza Delivery (最短路必經路徑)
題意:給你一個有向圖,每一條邊在第i天都會反向,問反向後的最短路是否有變化。每次反向都是獨立的。 解題思路:我們先把起點到所有點的最短路求出來,然後把所有邊反向,然後求終點到所有點的最短路。 這樣我們就記錄了兩個陣列d1,d2,分別記錄起點和終點
HDU-1548 A strange lift(最短路[Spfa || BFS])
題目連結: http://acm.hdu.edu.cn/showproblem.php?pid=1548 參考部落格: https://blog.csdn.net/idealism_xxm/article/details/47625691 BFS: //BFS #include