麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

HDU2112-HDU Today(Floyd & Dijkstra)

2019-11-14 08:48:37
字體:
來源:轉載
供稿:網友

HDU Today

Time Limit: 15000/5000 MS (java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 26744 Accepted Submission(s): 6517

PRoblem Description 經過錦囊相助,海東集團終于度過了危機,從此,HDU的發展就一直順風順水,到了2050年,集團已經相當規模了,據說進入了錢江肉絲經濟開發區500強。這時候,XHD夫婦也退居了二線,并在風景秀美的諸暨市浬浦鎮陶姚村買了個房子,開始安度晚年了。 這樣住了一段時間,徐總對當地的交通還是不太了解。有時很郁悶,想去一個地方又不知道應該乘什么公交車,在什么地方轉車,在什么地方下車(其實徐總自己有車,卻一定要與民同樂,這就是徐總的性格)。 徐總經常會問蹩腳的英文問路:“Can you help me?”。看著他那迷茫而又無助的眼神,熱心的你能幫幫他嗎? 請幫助他用最短的時間到達目的地(假設每一路公交車都只在起點站和終點站停,而且隨時都會開)。

Input 輸入數據有多組,每組的第一行是公交車的總數N(0 <=N<=10000); 第二行有徐總的所在地start,他的目的地end; 接著有n行,每行有站名s,站名e,以及從s到e的時間整數t(0 < t<100)(每個地名是一個長度不超過30的字符串)。 note:一組數據中地名數不會超過150個。 如果N==-1,表示輸入結束。

Output 如果徐總能到達目的地,輸出最短的時間;否則,輸出“-1”。

Sample Input 6 xiasha westlake xiasha station 60 xiasha ShoppingCenterofHangZhou 30 station westlake 20 ShoppingCenterofHangZhou supermarket 10 xiasha supermarket 50 supermarket westlake 10 -1

Sample Output 50

Floyd算法

#include<cstdio>#include<iostream>#include<algorithm>#include<map>using namespace std;const int inf=0x3f3f3f3f;const int V_MAX=153;int e[V_MAX][V_MAX];int main(){ ios_base::sync_with_stdio(false); int n; while(cin>>n,n!=-1){ for(int i=1;i<=V_MAX;i++) for(int j=1;j<=V_MAX;j++) if(i==j) e[i][j]=0; else e[i][j]=inf; map<string,int> m; string start,end,t1,t2; int t3; int q=0; cin>>start>>end; if(!m[start]) m[start]=++q; if(!m[end]) m[end]=++q; for(int i=0;i<n;i++){ cin>>t1>>t2>>t3; if(!m[t1]) m[t1]=++q; if(!m[t2]) m[t2]=++q; e[m[t1]][m[t2]] =e[m[t2]] [m[t1]]=t3; } for(int k=1;k<=q;k++) for(int i=1;i<=q;i++) for(int j=1;j<=q;j++) e[i][j]=min(e[i][j],e[i][k]+e[k][j] ); if(e[m[start]][m[end]]!=inf) cout<<e[m[start]][m[end]]<<endl; else cout<<"-1"<<endl; }}

Dijkstra算法 用Dijkstra 可以找到最短路徑.

#include<cstdio>#include<iostream>#include<string.h>#include<algorithm>#include<map>#define INF 0x3f3f3f3f#define maxn 153int dist[maxn];int last[maxn]; int visit[maxn];int graph[maxn][maxn];int fin_cnt;void init(int n){ memset(visit,0,sizeof(visit)); memset(last,-1,sizeof(last)); dist[0]=0; visit[0]=1; for(int i=1;i<n ;i++){ dist[i] = graph[0][i]; if(dist[i] !=INF) last[i]=0; } fin_cnt=1; }void dijkstra(int n){ int Min,Min_idx; while( fin_cnt < n){ Min=INF; Min_idx=-1; for(int i=1;i< n;i++){ if(visit[i]==1) continue; if( dist[i] < Min ) Min=dist[i],Min_idx=i; } if(Min_idx == -1) break; visit[Min_idx] =1; fin_cnt++; for(int i=1;i<n ;i++){ if(visit[i] ==1 ) continue; if(dist[Min_idx] + graph[Min_idx][i] < dist[i]) last[i]=Min_idx,dist[i] = dist[Min_idx]+graph[Min_idx][i]; } } }using namespace std;//尋找路徑 void find_path(int i,map<int,string> reverse_m,int deep){ if(i !=-1){ find_path(last[i],reverse_m,deep+1); cout<<reverse_m[i+1]; if(deep==0) cout<<endl; else cout<<"->"; }}int main(){ ios_base::sync_with_stdio(false); int n; while(cin>>n,n!=-1){ for(int i=0;i<maxn;i++) for(int j=0;j<maxn;j++) if(i==j) graph[i][j]=0; else graph[i][j]=INF; map<string,int> m; int q=0; string start,end,t1,t2; int t3; cin>>start>>end; if(!m[start]) m[start] = ++q; if(!m[end]) m[end] = ++q; for(int i=0;i<n;i++){ cin>>t1>>t2>>t3; if(m[t1] ==0) m[t1]=++q; if(m[t2] ==0) m[t2]=++q; graph[m[t1]-1][m[t2]-1]=graph[m[t2]-1][m[t1]-1] = t3; } init(q); dijkstra(q); if(dist[m[end]-1] != INF) cout<<dist[m[end]-1]<<endl; else cout<<-1<<endl; /* 尋找路徑 map<int,string> reverse_m; for(pair<string,int> x:m){ string fi=x.first; int se=x.second; reverse_m[se]=fi; } find_path(m[end]-1,reverse_m,0); */ }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 麻豆视频在线观看免费网站 | av手机免费在线观看 | 久久新地址 | 中国字幕av | 欧美一级免费视频 | 欧美77| 四季久久免费一区二区三区四区 | 国产1区2区在线 | 久久久久久久久久久综合 | 国产精品久久久久久久久久 | 亚洲午夜国产 | 黄色电影免费提供 | 孕妇体内谢精满日本电影 | 国产男女爽爽爽爽爽免费视频 | 亚洲欧美国产精品va在线观看 | 成人毛片在线 | 本站只有精品 | 91久久线看在观草草青青 | 91豆奶 | 欧美一级三级在线观看 | 色污视频| 日韩激情 | 日韩精品a在线观看 | 九九热免费视频在线观看 | 免费久久精品 | 日韩一级免费毛片 | av成人一区二区 | 日日噜噜噜噜久久久精品毛片 | 久久久久久久黄色片 | 欧美一级毛片大片免费播放 | 色悠悠久久久久 | 国产99久久精品一区二区300 | 国产做爰 | 91香蕉国产亚洲一区二区三区 | 午夜九九九 | 手机av在线电影 | 久久久国产精品免费观看 | 91精品久久久久久久久 | 久久99国产精品久久99 | 欧产日产国产精品v | fc2成人免费人成在线观看播放 |