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

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),其次,重邊的時候處理還不能單單記錄最小的那條,因為題目是求從1節(jié)點出發(fā)回到1的最小環(huán),所以極有可能會有這樣的情況出現(xiàn),從1到某個節(jié)點x,有多條重邊,然后這個時候 從1出發(fā)經(jīng)過某條邊到達(dá)x,然后又繞著他們之間另外的一條邊回到1,這樣子也算一個環(huán),這個地方當(dāng)初一直沒考慮到,因此貢獻(xiàn)了好幾次WA,然后自環(huán)的地方也錯了好幾次,最后,是flag[]數(shù)組初始化的錯誤,導(dǎo)致自己一直找不出來,淚奔.......
       這道題目的大致做法如下:枚舉每個和1相鄰的點,然后刪掉他們之間的這條邊,做一次Dijkastra,記錄下他們之間的最短路徑,將該路徑加上刪除邊的長度就是一個經(jīng)過1的環(huán)的長度,保存下來,然后加回原來的那條邊,按此方法繼續(xù),直到將所有的與1相鄰的點的枚舉一遍并且記錄下相應(yīng)的環(huán)值大小
      注意:對于自環(huán),只用記錄1到1這樣的自環(huán)(如果有,可能有多個,記錄最小的那個的值),其他的點的自環(huán)不用考慮,可以直接略掉,因為不影響本題;還有對于重邊的處理是,記錄兩個點之間(如果有多條重邊)最小和次小的那兩條邊的長度,然后將他們的和跟剛才計算的環(huán)的值做比較,取小的那個作為該環(huán)的最后的值,最后取所有環(huán)中最小的那個(如果有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 閱讀(1016) 評論(0)  編輯 收藏 引用


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


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

導(dǎo)航

統(tǒng)計

常用鏈接

留言簿(8)

隨筆檔案(78)

搜索

積分與排名

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲三级影片| 亚洲视频在线二区| 久久久精品网| 亚洲电影在线看| 亚洲电影av| 欧美视频福利| 久久国产黑丝| 久久精品国产欧美亚洲人人爽| 亚洲第一免费播放区| 亚洲欧洲在线免费| 国产精品试看| 麻豆精品精华液| 欧美精彩视频一区二区三区| 亚洲一区欧美| 久久精品人人爽| 日韩亚洲一区二区| 亚洲伊人第一页| 影音先锋一区| 日韩午夜黄色| 国产一区二区按摩在线观看| 欧美国产日韩一区| 国产精品成人观看视频免费| 久久久亚洲国产天美传媒修理工| 欧美成人自拍| 欧美一区二区三区四区在线观看地址| 欧美在线观看视频一区二区| 亚洲日本欧美日韩高观看| 亚洲色图在线视频| 好吊妞这里只有精品| 亚洲人成网站精品片在线观看| 国产精品一卡二卡| 欧美国产欧美亚洲国产日韩mv天天看完整 | 母乳一区在线观看| 欧美日韩一区二区三区视频 | 欧美日韩视频不卡| 久久久精品日韩欧美| 欧美韩国一区| 久久福利毛片| 欧美精品一区在线发布| 久久久xxx| 欧美成人一区二免费视频软件| 亚洲欧美一区二区三区久久| 在线观看视频一区二区欧美日韩| 亚洲国产精品成人精品| 国产精品欧美在线| 欧美激情视频给我| 国产精品一区免费视频| 欧美国产日韩在线| 国产嫩草影院久久久久| 91久久国产综合久久蜜月精品 | 午夜视频在线观看一区| 免费观看亚洲视频大全| 欧美在线播放一区二区| 欧美激情91| 葵司免费一区二区三区四区五区| 欧美性猛交一区二区三区精品| 欧美刺激午夜性久久久久久久| 国产精品外国| 亚洲毛片在线看| 亚洲福利视频一区| 欧美一区二区三区视频在线| 这里是久久伊人| 免费成人性网站| 久久久五月婷婷| 国产精品久久久久久久app| 亚洲高清三级视频| 黄网站色欧美视频| 亚洲欧美日韩综合一区| 亚洲一级免费视频| 免费看的黄色欧美网站| 久久全国免费视频| 国产欧美精品一区aⅴ影院| 亚洲久久视频| 亚洲精品网站在线播放gif| 久久精品一区二区三区四区| 亚洲综合色视频| 欧美啪啪一区| 亚洲电影免费观看高清| 在线观看国产成人av片| 欧美制服第一页| 亚洲欧美综合另类中字| 欧美日韩一区二区免费视频| 亚洲国产精品激情在线观看| 亚洲第一区中文99精品| 久久99伊人| 久久精品日产第一区二区三区| 国产精品久久久久久久午夜片| 99成人在线| 一区二区免费在线视频| 欧美精品福利视频| 亚洲国产日韩一区| 亚洲国产日韩在线| 久久综合狠狠综合久久综合88| 久久米奇亚洲| 国产一区高清视频| 欧美一级一区| 久久国产成人| 韩国三级电影一区二区| 亚洲国产精品一区二区第一页 | 国产欧美日韩一区二区三区| 亚洲午夜在线| 性欧美8khd高清极品| 国产精品在线看| 午夜亚洲伦理| 久久久久久97三级| 国产精品成人免费| 亚洲欧美日韩国产中文| 欧美在线国产精品| 国产香蕉97碰碰久久人人| 欧美一级理论性理论a| 久久久久久久久蜜桃| 激情伊人五月天久久综合| 久久久久国产成人精品亚洲午夜| 久久影视精品| 亚洲第一区中文99精品| 老司机一区二区| 亚洲国内高清视频| 在线亚洲高清视频| 国产精品美女xx| 午夜在线播放视频欧美| 久久在线视频在线| 好吊日精品视频| 久久久久亚洲综合| 欧美激情综合| 亚洲最新在线| 国产精品青草久久| 欧美一区二区三区播放老司机| 浪潮色综合久久天堂| 亚洲国产网站| 欧美日韩精品系列| 亚洲在线观看视频网站| 久久激情中文| 亚洲成色精品| 欧美日韩国产bt| 亚洲综合导航| 久久婷婷蜜乳一本欲蜜臀| 在线精品视频一区二区| 欧美激情一区二区三区在线视频观看 | 亚洲三级视频| 亚洲一区二区三区中文字幕在线 | 日韩视频不卡| 国产精品久久久久久久久久久久久| 亚洲主播在线| 久久乐国产精品| 99re8这里有精品热视频免费| 国产精品久久久久国产精品日日 | 欧美性大战久久久久久久蜜臀| 亚洲欧美综合另类中字| 美女久久一区| 99国产精品私拍| 国产麻豆精品视频| 另类成人小视频在线| 亚洲国产欧美一区二区三区久久| 亚洲欧美另类在线观看| 极品少妇一区二区| 欧美日韩国产限制| 欧美主播一区二区三区美女 久久精品人| 欧美成熟视频| 午夜影院日韩| 亚洲国产精品一区制服丝袜 | 亚洲综合国产激情另类一区| 狠狠色狠狠色综合| 欧美日韩一区二区三区免费| 久久精品论坛| 一级成人国产| 免费观看成人网| 亚洲欧美综合精品久久成人| 在线免费一区三区| 国产精品美女久久久久久免费| 久久综合九九| 亚洲性图久久| 亚洲高清网站| 久久久国产成人精品| 亚洲最新色图| 在线精品一区二区| 国产精品毛片一区二区三区| 久久精品夜色噜噜亚洲aⅴ| 亚洲素人一区二区| 亚洲国产精品123| 欧美在线观看一区| 99国产精品视频免费观看| 狠狠色狠狠色综合日日小说| 欧美视频一区二区三区在线观看| 久久夜色精品国产| 亚洲欧美偷拍卡通变态| 亚洲韩国日本中文字幕| 久久亚洲美女| 午夜精品国产精品大乳美女| 亚洲精品久久久久久久久久久久久| 国产日韩欧美精品| 欧美午夜国产| 欧美国产第一页| 欧美一区二粉嫩精品国产一线天| 日韩一级二级三级| 欧美丰满高潮xxxx喷水动漫| 久久久久九九九| 性欧美xxxx大乳国产app| 99精品99| 亚洲第一主播视频| 国内精品久久久|