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

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久久香蕉国产日韩欧美9色| 午夜精品电影| 国产精品99免视看9| 在线视频欧美日韩精品| 日韩视频第一页| 欧美体内she精视频| 亚洲视频在线二区| 亚洲视频香蕉人妖| 国产精品系列在线| 欧美一级网站| 久久久不卡网国产精品一区| 国产视频丨精品|在线观看| 欧美亚洲一区二区在线| 欧美一级网站| 亚洲国产精品视频| 亚洲黄色成人久久久| 欧美激情一区三区| 亚洲一区二区三区777| 亚洲永久免费| 一区精品在线播放| 亚洲国产综合91精品麻豆| 欧美色一级片| 久久精品道一区二区三区| 久久国产成人| 亚洲破处大片| 亚洲午夜电影网| 精品成人乱色一区二区| 亚洲欧洲在线免费| 国产精品亚洲片夜色在线| 久久视频国产精品免费视频在线| 欧美在线播放| 亚洲免费观看| 午夜精品久久久久99热蜜桃导演| 亚洲福利专区| 亚洲图片你懂的| 在线电影欧美日韩一区二区私密| 亚洲国产婷婷香蕉久久久久久99| 欧美性做爰毛片| 老司机67194精品线观看| 麻豆成人综合网| 亚洲欧美日韩综合aⅴ视频| 久久久水蜜桃| 欧美亚洲在线观看| 欧美成人精品福利| 亚洲欧美变态国产另类| 久久频这里精品99香蕉| 欧美在线高清视频| 亚洲毛片一区二区| 亚洲免费播放| 伊人久久婷婷色综合98网| 亚洲精品在线电影| 一区二区视频免费完整版观看| 亚洲日本视频| 国内精品美女av在线播放| 日韩一区二区电影网| 亚洲黄色片网站| 欧美一级一区| 亚洲欧美在线一区二区| 欧美国产视频在线| 久久久久一本一区二区青青蜜月| 欧美日韩激情小视频| 免费观看久久久4p| 国产精品一区毛片| 一区二区三区视频免费在线观看| 亚洲国产精选| 久久久久久久999| 欧美在线综合视频| 国产精品区二区三区日本 | 蜜桃视频一区| 久久久成人精品| 国产精品一卡二| 在线一区二区三区做爰视频网站| 亚洲欧洲一区二区天堂久久| 久久精品欧美| 久久中文字幕导航| 黄色在线一区| 久久亚洲风情| 免费在线亚洲欧美| 亚洲二区三区四区| 久久久蜜臀国产一区二区| 久久久另类综合| 国内精品美女在线观看| 久久久噜久噜久久综合| 免费不卡视频| 亚洲激情视频在线| 欧美肥婆在线| 99精品久久久| 亚洲一级黄色片| 欧美亚洲第一区| 一区二区三区四区国产| 亚洲女同在线| 国内精品视频在线播放| 久久午夜电影| 亚洲精品一区二区网址| 亚洲午夜精品久久| 国产精品裸体一区二区三区| 亚洲自拍偷拍一区| 久久精品男女| 亚洲日本成人| 欧美色欧美亚洲高清在线视频| 亚洲神马久久| 久久精品成人| 在线日韩av片| 欧美人与性禽动交情品 | 国模叶桐国产精品一区| 久久九九99视频| 亚洲第一免费播放区| 99在线热播精品免费| 国产精品r级在线| 久久大逼视频| 最新成人av网站| 香蕉久久夜色精品| 亚洲高清激情| 欧美日韩在线播放三区四区| 亚洲一区精品视频| 久久国产婷婷国产香蕉| 欧美高清在线一区| 亚洲视频精选在线| 国产日韩欧美综合| 欧美aⅴ一区二区三区视频| 亚洲精品美女| 久久激情网站| 亚洲精品在线电影| 国产精品久久久久99| 久久人人97超碰国产公开结果 | 亚洲欧美综合精品久久成人| 狂野欧美性猛交xxxx巴西| 99亚洲一区二区| 狠狠狠色丁香婷婷综合激情| 欧美激情一区二区三区在线视频 | 销魂美女一区二区三区视频在线| 欧美a级片网| 午夜在线精品偷拍| 亚洲精品日韩在线| 激情久久五月天| 国产精品久久一区主播| 欧美国产日韩精品| 欧美资源在线观看| 亚洲欧美韩国| 在线视频欧美日韩精品| 亚洲国产成人高清精品| 久久久久久久国产| 亚欧成人在线| 亚洲欧美大片| 亚洲手机视频| 一本一道久久综合狠狠老精东影业 | 免费欧美网站| 久久久噜噜噜久久久| 欧美亚洲在线视频| 亚洲免费在线| 亚洲欧美春色| 亚洲欧美激情诱惑| 亚洲一区二区精品视频| 亚洲深夜福利| 中文亚洲字幕| 一本色道综合亚洲| 亚洲美女免费视频| 亚洲国产日韩欧美| 在线观看日产精品| 在线播放日韩| 在线观看91精品国产麻豆| 好看不卡的中文字幕| 国产在线观看一区| 国户精品久久久久久久久久久不卡 | 欧美日韩性视频在线| 欧美国产一区二区| 欧美久久久久中文字幕| 欧美精品18videos性欧美| 欧美黑人多人双交| 欧美激情精品久久久久久蜜臀| 免费短视频成人日韩| 欧美ab在线视频| 欧美精品成人| 欧美涩涩网站| 国产日韩av在线播放| 国产午夜精品全部视频播放| 国产精品不卡在线| 性色av一区二区三区| 欧美一区二区三区的| 午夜精品视频一区| 久久精品国产96久久久香蕉| 久久久久久精| 欧美大香线蕉线伊人久久国产精品| 欧美chengren| 欧美日韩在线三级| 国产精品综合网站| 经典三级久久| 日韩视频在线观看一区二区| 亚洲天堂成人在线视频|