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

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>
            亚洲国产成人av好男人在线观看| 欧美中文字幕第一页| 亚洲精品资源| 欧美一区二区久久久| 欧美成人高清视频| 国产精品免费看| 亚洲国产小视频在线观看| 午夜精品久久久久久久白皮肤 | 欧美三日本三级三级在线播放| 欧美午夜视频在线观看| 亚洲高清视频一区二区| 亚洲国产99精品国自产| 亚洲一区二区三区成人在线视频精品 | 欧美高清影院| 黄色工厂这里只有精品| 亚洲一区二区三区久久| 亚洲一区影音先锋| 欧美三级视频在线观看| 午夜精品久久久久久久久| 久久国产精品黑丝| 国产视频精品va久久久久久| 99精品国产在热久久| 欧美大片一区| 欧美在线亚洲综合一区| 亚洲国产欧美在线人成| 一本色道久久综合精品竹菊| 欧美日韩aaaaa| 99re热这里只有精品视频| 亚洲一二三区视频在线观看| 欧美日韩午夜剧场| 一本久道久久综合狠狠爱| 亚洲国产一区二区三区a毛片| 久久久久久亚洲精品中文字幕 | 久久国产精品电影| 亚洲精品之草原avav久久| 欧美激情第3页| 久久天天狠狠| 亚洲国产91精品在线观看| 亚洲最新视频在线| 国产精品久久久久久久第一福利| 亚洲视频在线视频| 国产精品99久久久久久www| 国产精品电影网站| 欧美大片专区| 国产日韩精品电影| 久色婷婷小香蕉久久| 久久精品亚洲一区二区三区浴池| 国产一区二区三区四区hd| 久久久噜噜噜久久久| 久久久久久久综合| 午夜天堂精品久久久久| 欧美精品乱码久久久久久按摩| 一区二区av| 久久这里只有| 999在线观看精品免费不卡网站| 欧美一区二区私人影院日本 | 亚洲综合日韩中文字幕v在线| 国产精品99久久不卡二区| 最新国产の精品合集bt伙计| 亚洲精品欧美激情| 91久久黄色| 麻豆精品视频| 亚洲女同精品视频| 久久免费视频网| 久久精品成人一区二区三区| 欧美成人小视频| 欧美成人午夜视频| 亚洲福利视频免费观看| 久久久爽爽爽美女图片| 久久久久久高潮国产精品视| 欧美精品久久久久久久久老牛影院 | 久久av二区| 欧美刺激性大交免费视频| 美女91精品| 国产精品久久久久久福利一牛影视 | 欧美一级视频精品观看| 久热精品在线视频| 欧美成人四级电影| 亚洲国产毛片完整版| 欧美xx69| 亚洲最新在线视频| 羞羞答答国产精品www一本| 国产精品丝袜白浆摸在线| 亚洲国产精品成人综合色在线婷婷 | 久久久久九九九九| 欧美v国产在线一区二区三区| 欧美日韩一区二区三区四区五区| 日韩亚洲一区二区| 日韩视频不卡中文| 欧美视频在线看| 午夜精品久久久久久久久久久| 99成人在线| 国产精品久久久久久久浪潮网站 | 猛干欧美女孩| 最新高清无码专区| 国产精品www994| 欧美在线视频日韩| 亚洲经典视频在线观看| 亚洲电影免费观看高清| 午夜亚洲性色视频| 午夜精品久久久久| 一区二区三区在线免费视频| 小处雏高清一区二区三区| 久久综合色婷婷| 中国成人亚色综合网站| 国内久久婷婷综合| 久久黄色影院| 亚洲精品一线二线三线无人区| 性色一区二区三区| 日韩午夜在线播放| 国产综合久久| 欧美日韩成人| 久久久久一区二区三区| 日韩亚洲成人av在线| 久久综合九色综合网站| 在线欧美亚洲| 国产精品综合网站| 久久久.com| 亚洲午夜在线观看视频在线| 欧美国产一区视频在线观看| 欧美一级在线视频| 国产精品一区二区欧美| 欧美国产精品一区| 久久精品国产久精国产思思| 一本大道av伊人久久综合| 欧美/亚洲一区| 久久高清免费观看| 亚洲在线视频一区| 一本大道久久a久久精品综合| 黄色亚洲大片免费在线观看| 国产欧美精品一区二区三区介绍 | 99精品国产高清一区二区| 免费成人高清| 久久久天天操| 久久精品国产综合| 欧美专区在线观看| 先锋影音国产一区| 亚洲欧美激情一区| 亚洲一线二线三线久久久| 9色精品在线| 亚洲欧洲在线视频| 亚洲欧洲日本专区| 亚洲乱码精品一二三四区日韩在线| 国产一区二区三区四区三区四| 国产精品国产三级国产aⅴ无密码| 欧美精品在线一区二区| 一区二区三区视频免费在线观看| 亚洲国产免费| 亚洲第一黄色网| 亚洲国产精品久久| 最近看过的日韩成人| 最新日韩在线| 夜久久久久久| 亚洲小说区图片区| 亚洲免费在线视频| 亚洲激情专区| 亚洲精品国产拍免费91在线| 久久五月婷婷丁香社区| 久久久国产91| 欧美福利电影在线观看| 亚洲激情另类| 日韩亚洲精品电影| 午夜日韩在线观看| 久久久久久久一区二区三区| 蜜臀av国产精品久久久久| 欧美国产精品久久| 国产精品日本精品| 在线观看日韩专区| 国产在线视频不卡二| 亚洲国产老妈| 亚洲视频成人| 久久久久久噜噜噜久久久精品| 玖玖玖免费嫩草在线影院一区| 亚洲福利视频一区| 亚洲私人影院| 久久男女视频| 国产精品激情偷乱一区二区∴| 国产精品亚发布| 亚洲国产精品久久| 亚洲欧美在线免费| 午夜精品久久久久久久白皮肤 | 午夜亚洲福利| 久久男人资源视频| 欧美日韩在线观看一区二区| 国产亚洲欧美一区二区三区| 日韩视频免费在线观看| 久久国产精品亚洲77777| 亚洲高清不卡一区| 亚洲欧美日韩一区二区| 免费不卡视频| 国产在线不卡精品| 一区二区三欧美| 亚洲日本精品国产第一区| 91久久线看在观草草青青| 午夜精品一区二区三区在线播放| 欧美xxxx在线观看| 亚洲欧美中文在线视频| 欧美日韩免费看| 亚洲国产婷婷香蕉久久久久久| 欧美一区二区三区另类 |