青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

coj 1115

Lost City

Time Limit: 1000 MS  Memory Limit: 65536 K
Total Submit: 68 Accepted: 14

Description

Bob and Alice are visiting the “lost city”. It’s said that the guys who visit the city will be lost without the help of native. Bob is very interested in the story, and decides to travel alone. Can Bob break his destination? 
 Of course, Bob is prepared for his travel. No one want to be lost, is it? Bob marks every road he has visited so that he will never visit it a second time.
 Hours later, Bob has finally arrived at the position where he started his trip. Bob is so tired now and get back to the hotel to have a sleep immediately without telling Alice the path he has traveled in. Given the map, you are to help Alice calculate at least how far Bob has traveled.

Input

The input contains multiple test cases. 
For each test case, it contains n+1 lines.
Line 1: two integers m, n (1<= m <= 50, 1 <= n <= 2000) indicating that there are m cross and n roads in the city.
Line 2~n+1: each contains three integers i, j,d ( 1 <= i, j <= m , 1<= d <=100), indicating that there is a two way road connecting cross i and cross j. 
Bob starts from cross 1.

Output

Output the length of the shortest path Bob can travel. If there is no way Bob can finish his trip, just output “-1”

Sample Input

3 4
1 2 3
2 3 2
3 1 4
2 2 4

Sample Output

9

Source

langlang@hust


2009年7月25日

分類:最小環(huán),dijkastra

題目分析與算法原型
        這道題目來自地大OJ,相當(dāng)郁悶,WA了幾十次,題目有很多陷阱,比方說,重邊,還有自環(huán),其次,重邊的時(shí)候處理還不能單單記錄最小的那條,因?yàn)轭}目是求從1節(jié)點(diǎn)出發(fā)回到1的最小環(huán),所以極有可能會(huì)有這樣的情況出現(xiàn),從1到某個(gè)節(jié)點(diǎn)x,有多條重邊,然后這個(gè)時(shí)候 從1出發(fā)經(jīng)過某條邊到達(dá)x,然后又繞著他們之間另外的一條邊回到1,這樣子也算一個(gè)環(huán),這個(gè)地方當(dāng)初一直沒考慮到,因此貢獻(xiàn)了好幾次WA,然后自環(huán)的地方也錯(cuò)了好幾次,最后,是flag[]數(shù)組初始化的錯(cuò)誤,導(dǎo)致自己一直找不出來,淚奔.......
       這道題目的大致做法如下:枚舉每個(gè)和1相鄰的點(diǎn),然后刪掉他們之間的這條邊,做一次Dijkastra,記錄下他們之間的最短路徑,將該路徑加上刪除邊的長度就是一個(gè)經(jīng)過1的環(huán)的長度,保存下來,然后加回原來的那條邊,按此方法繼續(xù),直到將所有的與1相鄰的點(diǎn)的枚舉一遍并且記錄下相應(yīng)的環(huán)值大小
      注意:對(duì)于自環(huán),只用記錄1到1這樣的自環(huán)(如果有,可能有多個(gè),記錄最小的那個(gè)的值),其他的點(diǎn)的自環(huán)不用考慮,可以直接略掉,因?yàn)椴挥绊懕绢};還有對(duì)于重邊的處理是,記錄兩個(gè)點(diǎn)之間(如果有多條重邊)最小和次小的那兩條邊的長度,然后將他們的和跟剛才計(jì)算的環(huán)的值做比較,取小的那個(gè)作為該環(huán)的最后的值,最后取所有環(huán)中最小的那個(gè)(如果有1到1的自環(huán),則還有跟該自環(huán)的長度做一次比較,取較小的值)輸出

Code:  

  1
#include<stdio.h> 
  2#include<string.h> 
  3
  4#define max 1000000000 
  5
  6#define len 55 
  7
  8int i, j, map[len][len], dis[len], flag[len],m,n,u,_dis[len],res,pos[len][2]; 
  9bool finish; 
 10
 11void init() 
 12
 13    for(i=1;i<=m;i++
 14        for(j=1;j<=m;j++
 15        
 16            if(i==j)map[i][j]=0
 17            else map[i][j]=max; 
 18
 19            pos[j][0]=max; 
 20            pos[j][1]=max; 
 21            _dis[j]=max; 
 22        }
 
 23}
 
 24
 25void dij(int v0) 
 26
 27    for(i=1;i<=m;i++) dis[i]=map[v0][i]; 
 28    flag[v0]=1
 29
 30    for(i=1;i<m;i++
 31    
 32        int min=max; 
 33        for(j=1;j<=m;j++
 34            if(flag[j]==0&&dis[j]<min) 
 35            
 36                u=j; 
 37                min=dis[j]; 
 38            }
 
 39
 40        if(min==max)return ; 
 41        flag[u]=1
 42        for(j=1;j<=m;j++
 43            if(flag[j]==0&&map[u][j]<max&&dis[u]+map[u][j]<dis[j]) 
 44                dis[j]=dis[u]+map[u][j]; 
 45    }
 
 46}
 
 47
 48void DIJ() 
 49
 50    int p; 
 51    for(p=2;p<=m;p++
 52    
 53        if(map[1][p]<max) 
 54        
 55            int tt=map[1][p]; 
 56            map[1][p]=max; 
 57            map[p][1]=max; 
 58            memset(flag,0,sizeof(flag)); 
 59            dij(1); 
 60            _dis[p]=dis[p]; 
 61            map[1][p]=tt; 
 62            map[p][1]=tt; 
 63        }
 
 64    }
 
 65}
 
 66
 67int main() 
 68
 69    while(scanf("%d%d",&m,&n)!=EOF) 
 70    
 71        init(); 
 72        finish=false
 73        res = max; 
 74        for(i=0;i<n;i++
 75        
 76            int a,b,d; 
 77            scanf("%d%d%d",&a,&b,&d); 
 78             
 79            if(a==1&&b==1
 80            
 81                finish=true
 82                if(d < res) res=d; 
 83            }
 
 84            else if(a!=b) 
 85            
 86                if(d<map[a][b]) 
 87                
 88                    map[a][b]=d; 
 89                    map[b][a]=d; 
 90                }
 
 91                if(a>b) 
 92                
 93                    int t; 
 94                    t=a,a=b,b=t; 
 95                }
 
 96                if(a==1
 97                
 98                    int t=pos[b][0]; 
 99                    if(d<t) 
100                    
101                        pos[b][0]=d; 
102                        pos[b][1]=t; 
103                    }
 
104                    else if(d>=&& d<pos[b][1])pos[b][1]=d; 
105                }
 
106            }
 
107        }
 
108
109        DIJ(); 
110        int _min=max; 
111
112        for(i=2;i<=m;i++
113        
114            if(map[1][i]<max) 
115            
116                if(_dis[i]<max) 
117                    if(_dis[i]+map[1][i]<_min)_min=_dis[i]+map[1][i]; 
118
119                if(pos[i][0]+pos[i][1]<_min)_min=pos[i][0]+pos[i][1]; 
120            }
 
121        }
 
122
123        if(finish) 
124            if(res<_min)_min=res; 
125         
126        if(_min<max) printf("%d\n",_min); 
127        else printf("-1\n"); 
128    }
 
129
130    return 0
131}
 

posted on 2009-07-25 20:53 蝸牛也Coding 閱讀(1015) 評(píng)論(0)  編輯 收藏 引用


只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


<2009年7月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

導(dǎo)航

統(tǒng)計(jì)

常用鏈接

留言簿(8)

隨筆檔案(78)

搜索

積分與排名

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久美女性网| 亚洲电影免费在线观看| 日韩午夜电影在线观看| 欧美国产一区二区在线观看| 91久久嫩草影院一区二区| 欧美成人综合在线| 欧美久久视频| 先锋影音一区二区三区| 欧美一区二区高清| 亚洲国产精品电影| 99视频有精品| 国产在线拍偷自揄拍精品| 欧美成人精精品一区二区频| 欧美激情综合| 欧美在线免费视屏| 六月婷婷一区| 亚洲一区二区免费| 久久激情网站| 亚洲一区二区在线| 久久精品一本| 亚洲综合久久久久| 久久嫩草精品久久久精品| 中日韩高清电影网| 久久久久久穴| 亚洲影视综合| 欧美91福利在线观看| 欧美一区二粉嫩精品国产一线天| 久久久久久久网站| 亚洲欧美日韩在线| 免费成人黄色| 久久久国际精品| 欧美网站在线观看| 欧美不卡视频一区| 国产欧美一区二区三区视频 | 国产精品啊v在线| 久久综合精品一区| 国产精品国产馆在线真实露脸| 美日韩免费视频| 国产精品丝袜91| 亚洲精品视频在线看| 在线观看中文字幕亚洲| 亚洲免费在线看| 一区二区三区蜜桃网| 美国成人直播| 老司机凹凸av亚洲导航| 国产精品一级| 在线一区视频| 亚洲午夜91| 欧美精品一区二区三区在线看午夜| 久久乐国产精品| 国产视频观看一区| 亚洲尤物在线视频观看| 亚洲一区在线免费| 欧美日韩一区综合| 亚洲精品在线观看视频| 亚洲精品亚洲人成人网| 另类av一区二区| 久久综合五月天婷婷伊人| 国产欧美午夜| 亚洲欧美在线磁力| 久久国产天堂福利天堂| 国产欧美日韩视频一区二区| 亚洲一区二区三区精品动漫| 亚洲欧美www| 国产精品另类一区| 亚洲一区二区三区免费视频| 午夜精品久久久久久久久| 欧美日韩精品免费| 99精品视频免费全部在线| 亚洲午夜免费福利视频| 欧美日韩午夜在线| 亚洲天天影视| 久久国产免费看| 极品尤物久久久av免费看| 欧美在线视频a| 久久久亚洲精品一区二区三区| 好吊妞**欧美| 免费一级欧美片在线播放| 亚洲国产欧美一区二区三区久久| 一区二区三区高清在线观看| 欧美日韩在线播放一区| 一区二区三区四区精品| 久久国产日韩欧美| 亚洲人精品午夜| 狠狠色综合色综合网络| 久久se精品一区精品二区| 免费观看久久久4p| 亚洲看片网站| 国产精品蜜臀在线观看| 久久精品国语| 99re这里只有精品6| 性高湖久久久久久久久| 在线看片成人| 欧美日韩免费区域视频在线观看| 亚洲一区二区三区四区五区午夜 | 国产专区综合网| 免费久久久一本精品久久区| 99国产精品视频免费观看一公开| 久久电影一区| 日韩一区二区精品在线观看| 国产日韩欧美日韩| 欧美激情第一页xxx| 亚洲欧美日韩国产综合在线| 毛片基地黄久久久久久天堂| 亚洲午夜伦理| 亚洲高清中文字幕| 国产精品美女在线| 你懂的国产精品| 欧美一二三视频| 亚洲日韩欧美视频| 麻豆精品91| 欧美一区成人| 一区二区三区精密机械公司 | 国产永久精品大片wwwapp| 欧美激情无毛| 久久久精品tv| 亚洲在线观看| av成人免费在线| 欧美国产三级| 久久欧美肥婆一二区| 亚洲欧美另类在线| 99精品久久久| 亚洲黄色一区| 亚洲第一精品福利| 国产一区香蕉久久| 国产精品一区在线观看你懂的| 欧美精品系列| 欧美成人免费在线| 老色鬼精品视频在线观看播放| 亚洲欧美日韩在线一区| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 日韩一本二本av| 亚洲第一精品夜夜躁人人躁| 久久免费99精品久久久久久| 欧美一区视频| 亚洲欧美日韩直播| 亚洲亚洲精品在线观看 | 国产综合精品一区| 国产精品亚洲一区| 国产精品久久久久91| 国产精品va在线| 国产精品国产三级国产专区53| 欧美日韩情趣电影| 欧美日韩国产一中文字不卡| 欧美精品在线免费| 欧美日韩精品在线播放| 欧美精品在欧美一区二区少妇| 欧美成人精精品一区二区频| 欧美~级网站不卡| 欧美高清日韩| 久久久久久久综合色一本| 欧美亚洲综合网| 久久都是精品| 久久精品夜色噜噜亚洲aⅴ| 久久国产乱子精品免费女| 久久精品国产亚洲a| 久久蜜桃资源一区二区老牛 | 午夜精品福利一区二区蜜股av| 亚洲淫片在线视频| 欧美一二三区精品| 久久精品天堂| 免费成人黄色| 亚洲精品久久久久久久久久久久| 日韩一区二区免费高清| 亚洲专区一二三| 久久精品视频亚洲| 欧美国产精品v| 欧美视频日韩视频| 国产精品一区二区视频| 国产在线精品一区二区夜色| 最近看过的日韩成人| 在线亚洲欧美| 久久免费黄色| 亚洲欧洲日本一区二区三区| 亚洲一级在线观看| 久久亚洲欧美国产精品乐播| 欧美日韩一区二区三区在线视频 | 国产亚洲欧美日韩一区二区| 伊人精品成人久久综合软件| 日韩亚洲在线观看| 久久爱另类一区二区小说| 欧美激情四色| 午夜精品视频在线观看一区二区| 久久婷婷综合激情| 国产精品国产三级国产专区53| 禁久久精品乱码| 亚洲综合视频在线| 欧美+亚洲+精品+三区| 在线性视频日韩欧美| 美女尤物久久精品| 国产乱码精品一区二区三| 99精品欧美一区二区蜜桃免费| 久久九九久久九九| 一区二区三区久久网| 蜜桃久久av一区| 狠狠色综合网| 欧美一区二区在线免费播放| 亚洲精选久久| 欧美成人黑人xx视频免费观看| 国产又爽又黄的激情精品视频|