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

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>
            久久成人亚洲| 久久久久女教师免费一区| 欧美美女操人视频| 日韩视频在线观看| 一区二区激情视频| 国产精品进线69影院| 亚洲午夜av在线| 亚洲一区二区三区成人在线视频精品| 欧美性天天影院| 欧美在线黄色| 亚洲成在人线av| 性刺激综合网| 国产精品久久久久aaaa樱花| 欧美在线不卡视频| 欧美视频一区二区在线观看 | 国产主播一区二区| 久久久久国产精品麻豆ai换脸 | 亚洲欧美日韩天堂| 欧美va天堂在线| 国产精品99久久久久久久久 | 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲高清精品中出| 欧美日韩四区| 久久久久一区二区三区四区| 理论片一区二区在线| 中文网丁香综合网| 久久精品国产99国产精品| 亚洲精选视频免费看| 亚洲一区亚洲| 91久久午夜| 香港久久久电影| 亚洲久久在线| 香蕉久久夜色精品国产使用方法 | 欧美日韩第一区日日骚| 欧美一区在线视频| 欧美成人中文字幕在线| 午夜欧美理论片| 男人插女人欧美| 久久精品国产一区二区三区免费看| 免费欧美日韩| 久久永久免费| 国产精品一区在线观看你懂的| 欧美成人精品h版在线观看| 国产精品盗摄一区二区三区| 亚洲第一成人在线| 国内精品久久久久伊人av| 夜夜嗨网站十八久久 | 欧美日韩伊人| 欧美成人官网二区| 国产人成精品一区二区三| 亚洲乱码精品一二三四区日韩在线 | 亚洲人成网站在线观看播放| 国产综合久久久久久| 亚洲天堂第二页| 99热在这里有精品免费| 另类天堂av| 免费在线观看日韩欧美| 国产一区二区在线观看免费| 中文国产成人精品久久一| 一本久道久久综合狠狠爱| 欧美大胆成人| 毛片基地黄久久久久久天堂| 国产一级精品aaaaa看| 亚洲欧美日韩久久精品| 先锋影音一区二区三区| 欧美性猛交视频| 亚洲素人在线| 欧美一区二区精品久久911| 国产精品免费区二区三区观看| 亚洲靠逼com| 亚洲色诱最新| 国产精品久久久久久久久久久久久久 | 一区二区三区 在线观看视| 欧美大胆成人| 妖精视频成人观看www| 午夜亚洲福利在线老司机| 国产精品乱码一区二三区小蝌蚪| 亚洲手机视频| 久久精品亚洲| 在线国产欧美| 欧美激情在线播放| 一本大道av伊人久久综合| 午夜一区在线| 国产一区二区黄色| 久久久亚洲一区| 国产精品久久国产精麻豆99网站| 裸体一区二区| 亚洲国产精品视频一区| 欧美黑人国产人伦爽爽爽| 亚洲免费观看| 久久成人免费| 亚洲人成欧美中文字幕| 欧美日韩一区二区三区免费看| 亚洲一区二区三区乱码aⅴ| 久久久久高清| 亚洲免费观看高清在线观看| 国产精品嫩草影院一区二区| 欧美在线观看你懂的| 亚洲电影免费观看高清完整版在线| 一本色道久久| 韩国精品在线观看| 欧美日韩福利| 欧美一区二区三区精品| 欧美激情国产日韩| 亚洲欧美综合| 亚洲精品免费在线| 国产九九视频一区二区三区| 麻豆精品网站| 亚洲资源av| 亚洲大胆人体视频| 午夜在线精品偷拍| 亚洲黄色免费| 欧美一区三区三区高中清蜜桃| 亚洲国产日韩精品| 国产精品一区二区你懂的| 欧美大片免费观看在线观看网站推荐| 在线亚洲欧美视频| 欧美成人精品影院| 亚欧成人在线| 性久久久久久久久| 欧美大片一区| 久久gogo国模啪啪人体图| 最新成人av在线| 久久视频在线看| 欧美一区二区啪啪| 亚洲一级电影| 亚洲精品久久久久久下一站| 国产综合色产在线精品| 国产麻豆综合| 欧美性大战xxxxx久久久| 欧美bbbxxxxx| 久久夜色精品国产噜噜av| 久久爱另类一区二区小说| 亚洲综合视频1区| 99这里有精品| 亚洲精品欧美极品| 亚洲欧洲日本一区二区三区| 麻豆成人在线播放| 久久久久综合| 久久久www| 久久精品主播| 久久久国产一区二区三区| 欧美亚洲日本国产| 欧美影院一区| 久久久久国产精品一区三寸| 欧美在线观看你懂的| 欧美影视一区| 久久久国产精彩视频美女艺术照福利| 香蕉久久精品日日躁夜夜躁| 小黄鸭精品密入口导航| 欧美伊人久久久久久久久影院| 欧美一区亚洲一区| 久久蜜桃资源一区二区老牛| 久久精品综合| 欧美mv日韩mv亚洲| 亚洲黄色高清| 亚洲视频999| 亚洲欧美日韩一区二区三区在线| 午夜亚洲一区| 久久婷婷影院| 欧美屁股在线| 国产精品私人影院| 国产一区91精品张津瑜| 一区二区三区在线观看国产| 在线欧美不卡| 99av国产精品欲麻豆| 亚洲综合视频一区| 久久精品一本| 欧美国产日韩亚洲一区| 亚洲精品在线免费| 亚洲欧美国产一区二区三区| 久久久久国产一区二区| 欧美激情中文不卡| 国产精品手机视频| 亚洲高清在线视频| 国产精品99久久久久久有的能看 | 欧美日韩免费一区二区三区视频| 欧美三级乱码| 影音国产精品| 夜夜嗨av一区二区三区中文字幕 | 夜夜嗨av色综合久久久综合网| 性欧美超级视频| 欧美高清在线观看| 亚洲一区国产精品| 久久亚洲综合色| 国产精品高潮呻吟久久| 曰韩精品一区二区| 亚洲一区二区三区高清不卡| 久久久亚洲高清| 在线一区二区三区四区五区| 久久成人久久爱| 国产精品高潮粉嫩av| 亚洲国产精品视频| 久久精精品视频| 亚洲无线视频| 欧美精品在线一区二区| 在线看不卡av| 卡一卡二国产精品| 亚洲欧美一区二区视频| 欧美日韩中文字幕日韩欧美|