<html>

來源:互聯網
上載者:User

標籤:最短時間   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
  • 從此醉
  • 2013-11-22 14:03
  • 73
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編程基礎
  • 檔案夾
  • 喜歡 取消愛好
  • 收藏
  • 分享 微博 QQ
收藏助手 不良資訊舉報

<html>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.