多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > HDU1874 暢通工程續

HDU1874 暢通工程續

來源:程序員人生   發布時間:2015-02-04 09:06:46 閱讀次數:3110次

鏈接:click here

題意:

某省自從實行了很多年的暢通工程計劃后,終究修建了很多路。不過路多了也不好,每次要從1個城鎮到另外一個城鎮時,都有許多種道路方案可以選擇,而某些方案要比另外一些方案行走的距離要短很多。這讓行人很困擾。
現在,已知出發點和終點,請你計算出要從出發點到終點,最短需要行走多少距離。
 
Input
本題目包括多組數據,請處理到文件結束。
每組數據第1行包括兩個正整數N和M(0<N<200,0<M<1000),分別代表現有城鎮的數目和已修建的道路的數目。城鎮分別以0~N⑴編號。
接下來是M行道路信息。每行有3個整數A,B,X(0<=A,B<N,A!=B,0<X<10000),表示城鎮A和城鎮B之間有1條長度為X的雙向道路。
再接下1行有兩個整數S,T(0<=S,T<N),分別代表出發點和終點。
 
Output
對每組數據,請在1行里輸出最短需要行走的距離。如果不存在從S到T的線路,就輸出⑴.

思路:這道題題面不難理解,根據自己之前的做法,卻是返回超時。靜下心來1番仔細檢查代碼后,終究發現預處理數組的進程用的方法不同,返回的時間消耗就會不1樣

比如我用兩個for循環就比memset函數快的多,而且還發現,不知道為何定義INF的值太大時,如果用memset函數,就會出現意想不到的毛病。不知如何理解?,如果有人看到了有甚么想法,歡迎相互交換。

參考代碼:

#include <string.h> #include <stdio.h> #include <iostream> #include <algorithm> using namespace std; const int Inf=0x3f3f3f3f; const int maxn=202; int cost[maxn][maxn]; //存圖 int d[maxn]; //從s動身的最短路徑 bool used[maxn]; //已使用過的圖 int V,pre,last; //頂點數 int city[maxn]; void dijkstra() { int i,j,k; memset(used,0,sizeof(used)); for(i=0; i<V; i++) d[i]=cost[pre][i]; d[pre]=0; used[pre]=true; while(true) { int v=Inf; for(int u=0; u<V; u++) { if(!used[u]&&(v==Inf||d[u]<d[v])) v=u; } if(v==Inf) break; used[v]=true; for(int u=0; u<V; u++) { d[u]=min(d[u],d[v]+cost[v][u]); } } //本來1貫的寫法,測試發現效力不是很高 // for(i=0; i<V; i++) // { // min=Inf; // for(j=0; j<V; j++) // if(!used[j]&&d[j]<min) // { // min=d[j]; // k=j; // } // if(min==Inf)break; // used[k]=1; // for(j=0; j<V; j++) // if(!used[j]&&d[j]>d[k]+cost[j][k]) // d[j]=d[k]+cost[j][k]; // } if(d[last]==Inf) printf("⑴ "); else printf("%d ",d[last]); //return d[V]; } int main() { int M,i,j; while(scanf("%d%d",&V,&M)!=EOF) { //memset(cost,Inf,sizeof(cost)); for(i=0; i<V; i++) for(j=0; j<V; j++) cost [i][j]=Inf; int u,v,quan; for(i=0; i<M; i++) { scanf("%d%d%d",&u,&v,&quan); if(cost[u][v]>quan) { cost[v][u]=quan; cost[u][v]=quan; } } scanf("%d%d",&pre,&last); dijkstra(); } return 0; } 測試數據 /* 3 3 0 1 1 0 2 3 1 2 1 0 2 3 1 0 1 1 1 2 0 0 */



生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 最近中文免费字幕在线播放 | 亚洲精品网站在线观看不卡无广告 | 亚洲综合片 | 国产亚洲精品自在线观看 | 中文字幕免费高清视频 | 夜夜狠操 | 日本中文字幕永久在线 | 国产极品久久 | 亚洲网站在线观看 | 欧美在线精品永久免费播放 | 成人亚洲在线观看 | 亚洲成综合人影院在院播放 | 久久久久久久久a免费 | 亚洲黄色小说视频 | 视频在线h | 手机在线精品视频每日更新 | 成人在线亚洲 | 老司机福利免费 | 欧洲美女人牲交一级毛片 | 91精品视频网站 | 国产成人精品午夜二三区 | 亚洲第一页国产 | 一级毛片区 | 一二三四视频社区5在线高清视频 | 久久久久久久久毛片精品 | 免费的毛片网站 | 欧美free嫩交video| 国产精品福利一区二区 | 香蕉久久夜色精品国产2020 | 91精品福利一区二区 | 欧美亚洲自拍偷拍 | 亚洲另类图 | 中文字幕第一页在线视频 | 韩国精品一区二区久久 | 一区二区三区四区在线播放 | 国产日韩精品一区二区在线观看播放 | 成人影院久久久久久影院 | 国产欧美日韩综合精品一区二区三区 | 欧美黑人xxx| 视频在线观看免费视频 | 国内精品一区二区三区αv 国内精品一区二区三区东京 |