標籤:最短時間 mono problem 審核 神經網路 line 連結 directory ons
最短路
Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 42585 Accepted Submission(s): 18653
Problem Description在每年的校賽裡。全部進入決賽的同學都會獲得一件非常美麗的t-shirt。可是每當我們的工作人員把上百件的衣服從商店運回到賽場的時候,卻是非常累的!
所以如今他們想要尋找最短的從商店到賽場的路線,你能夠協助他們嗎?
Input輸入包含多組資料。每組資料第一行是兩個整數N、M(N<=100。M<=10000),N表示成都的大街上有幾個路口,標號為1的路口是商店所在地。標號為N的路口是賽場所在地,M則表示在成都有幾條路。
N=M=0表示輸入結束。
接下來M行,每行包含3個整數A。B,C(1<=A,B<=N,1<=C<=1000),表示在路口A與路口B之間有一條路。我們的工作人員須要C分鐘的時間走過這條路。
輸入保證至少存在1條商店到賽場的路線。
Output對於每組輸入,輸出一行,表示工作人員從商店走到賽場的最短時間
Sample Input
2 11 2 33 31 2 52 3 53 1 20 0
Sample Output
32
AC-code:
Dijkstra:
#include<cstdio>#define max 0x3f3f3f3f#define min(a,b) (a>b?b:a)int n,dis[105],cost[105][105];void dijkstra(int a){int i,vis[105];for(i=1;i<=n;i++){dis[i]=max;vis[i]=0;}dis[a]=0;while(1){int v=-1;for(i=1;i<=n;i++)if(!vis[i]&&(v==-1||dis[i]<dis[v]))v=i;if(v==-1)break;vis[v]=1;for(i=1;i<=n;i++)dis[i]=min(dis[i],dis[v]+cost[v][i]);}}int main(){int m,i,j,a,b,c;while(scanf("%d%d",&n,&m),n||m){for(i=1;i<=n;i++)for(j=1;j<=n;j++)cost[i][j]=max;for(i=1;i<=m;i++){scanf("%d%d%d",&a,&b,&c);cost[a][b]=cost[b][a]=min(cost[a][b],c);}dijkstra(1);printf("%d\n",dis[n]);}return 0;}
SPFA:
#include<cstdio>#include<queue>#include<cstring>#define INF 0x3f3f3f3fint dis[105],vis[105],n,head[105*105],num;using namespace std;struct node{int from,to,val,next;}A[105*105];void spfa(int sx){queue<int>q;memset(dis,INF,sizeof(dis));memset(vis,0,sizeof(vis));q.push(sx);dis[sx]=0;vis[sx]=1;while(!q.empty()){int u=q.front();q.pop();vis[u]=0;for(int i=head[u];i!=-1;i=A[i].next){int v=A[i].to;if(dis[v]>dis[u]+A[i].val){dis[v]=dis[u]+A[i].val;if(!vis[v]){vis[v]=1;q.push(v);}}}}printf("%d\n",dis[n]);}void chan(int a,int b,int c){node B={a,b,c,head[a]};A[num]=B;head[a]=num++;}int main(){int i,m,a,b,c;while(scanf("%d%d",&n,&m),n||m){num=0;memset(head,-1,sizeof(head));for(i=0;i<m;i++){scanf("%d%d%d",&a,&b,&c);chan(a,b,c);chan(b,a,c);}spfa(1);}return 0;}
閱讀全文 著作權聲明:轉載請註明出處~
舉報
- 標籤:
q=dijkstra&t=blog" target="_blank">dijkstra /
q=HDU&t=blog" target="_blank">HDU /
q=圖論&t=blog" target="_blank">圖論 /
- 最短路 /
q=SPFA&t=blog" target="_blank">SPFA /
0條評論
-
-
相關文章推薦
-
Hdu 2544 最短路 (Dijkstra+SPFA+Floyd模板) 題目連結:http://acm.hdu.edu.cn/showproblem.php?pid=2544最短路模板題。Dijkstra#include #include #include...
- whyorwhnt
- 2013-03-09 17:37
- 701
-
hdu 2544 最短路(最簡單的最短路:floyd or dijkstra or spfa) 最短路Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 747
- gzhu_101majia
- 2011-08-16 11:00
- 3201
-
ACM-最短路(SPFA,Dijkstra,Floyd)之最短路——hdu2544 ACM 最短路(SPFA,Dijkstra,Floyd) 最短路 hdu2544
- lx417147512
- 2014-05-27 11:59
- 2695
-
最短路專題【完結】 第一題 hdu 1317 XYZZY點擊開啟hdu 1317<p
-
hdu-2544-最短路-(bellman-ford、dijkstra、floyd、SPFA演算法) 最短路問題在程式競賽中是常常出現的內容,解決單源最短路經問題的有bellman-ford和dijkstra兩種演算法。當中,dijikstra演算法是對bellman的改進。同一時候介紹了floyd演算法、SP...
- newproblems
- 2017-07-31 21:20
- 72
-
-
所謂夢想,就是永不停息的瘋狂。。。
。。 +關注
-
原創
-
345
-
粉絲
-
13
-
喜歡
-
0
- 多重剪貼簿【Python】
- SQL總結
- NYOJ 1092:數字分隔(二)【JAVA 】
- NYOJ 111:分數加減法【水】
很多其它文章
線上課程
-
-
utm_source=blog7" target="_blank">【套餐】Hadoop生態系統零基礎入門
-
-
【套餐】嵌入式Linux C編程基礎
收藏助手 不良資訊舉報
<html>