最短路模板題目。spfa 或 用堆優化的迪傑斯特拉演算法均可實現。
成都浣花溪公園是一座有著詩歌文化氣息的公園,它以杜甫草堂的歷史文化內涵為背景,運用現代園林和建築設計的前沿理論,以自然雅緻的景觀和建築凸現川西文化醇厚的歷史底蘊,是一座集將自然景觀和城市景觀、古典園林和現代建築藝術有機結合的城市公園。
週末,mr.zeng和他兒子在浣花溪公園「詩歌大道」上欣賞詩歌,剛詩興正濃,mr.zeng忽然想起汽車的車門沒鎖,於是他們要在最快的時間內走出公園趕到公園門口停車場。我們把公園的景點用數字標號(從1 到 n-1),在兩個景點中之間會有道路連線,並且mr.zeng和他兒子都是素質很高的人,他們不會穿越公園的草坪,只會沿著公園的小路行走。mr.zeng想知道從他們當前所處的位置 s 到公園的出口(標號固定為 n)所需要的最短時間。你能幫幫他嗎?
輸入檔案的第一行有3 個正整數:n、k、t 並且用空格隔開,分別表示公園景點數目、公園小路條數,以及他們當前所處的景點編號。
接下來 k 行,每行三個整數,表示小路連線的兩個景點的編號以及走過這條小路所需要的時間。
乙個整數,表示他們走出公園所需要的最短時間。
輸入
3 2 1輸出1 2 3
2 3 4
7
【資料範圍】
對於 60% 的資料,保證 n<=1000,k<=10000。
對於 100% 的資料,保證 n<=10000,k<=100000。
對於 100% 的資料,保證結果在 231 內。
一 spfa+vector實現
#include#include#include#include#include#include#include#include#include tmp=p.front(); p.pop();
using namespace std;
struct node
; vector bian[200001]; //儲存邊,由於一般情況下eint dist[10001];
bool exist[10001]; //exist[i]=true表示點i已經在佇列中
int n,k,t; //點數、變數、當前位置
void init() //資料輸入,建立鄰接表
}int main() //主程式}}
p.pop(); //彈出隊首節點
} printf("%d",dist[n]); //輸出到終點的最短路
return 0;
}
二 純dijkstra
#include#include#include#include#include#include#include#include#includeusing namespace std;
struct node;
node heap[10010];
int n,m,k,x,y,i,j,tot,cnt,z,p,s;
int next[200100],w[200100],v[200100],pl[10010],first[10010],dis[10010];
void addedge(int x,int y,int z)
void down(int x)
}int main()
memset(dis,127,sizeof(dis));
dis[s]=0;
cnt=0;
for(i=1;i<=n;i++)
heap[pl[s]].w=0;
up(pl[s]);
for(i=1;i<=n;i++)
edge[200010];
inline void create(int x,int y,int z)
void read(void)
}int dijkstra(int s,int t)
p=edge[p].next;
} }
return dis[t];
}int main()
{ read();
cout<
最短路 Floyd演算法和Dijkstra演算法
兩者在負權問題上不是很好,最好只處理正值,dijkstra演算法對負權毫無辦法,但是floyd演算法不能處理出現負環的東西。dijkstra演算法的話,為了方便,我認為從i到i點不可達 百部百科解釋挺好,那個堆優化挺好的 floyd演算法百部百科也不錯,都是老演算法了,哪都有資料 這位筒子的寫得很好...
dijkstra和dijkstra堆優化模板
之前qaq一直沒有準備堆優化模板,本例以pat a1003為例,整理dijkstra和dijkstra堆優化模板 我們可以發現該篇幅找最小值部分是使用量乙個for迴圈 include include using namespace std int n,m,c1,c2 int edge 510 510...
ACM之路 5 最短路演算法 Dijkstra演算法
簡介 dijkstra演算法是一種單源路徑演算法。時間複雜度為 o n 2 比floyd演算法 o n 3 快很多。當然,dijkstra演算法可以用堆優化後,演算法複雜度成了 o m n logn 複雜度更底了。本文只講解dijkstra的簡單演算法。問題 給予n個城市和m條道路,求從城市1到城市...