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

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| 亚洲欧美日韩一区在线观看| 影音先锋中文字幕一区二区| 国产精品综合不卡av| 国产亚洲精品综合一区91| 伊人色综合久久天天| 免费亚洲婷婷| 一本色道久久加勒比精品| 中文亚洲免费| 久久影院午夜片一区| 欧美日韩三级| 狠狠色伊人亚洲综合成人| 亚洲素人一区二区| 久久精视频免费在线久久完整在线看| 欧美国产日韩xxxxx| 中文有码久久| 国产一区二区三区直播精品电影| 美女黄毛**国产精品啪啪| 欧美成人r级一区二区三区| 国产日韩综合一区二区性色av| 夜夜爽www精品| 久久综合成人精品亚洲另类欧美 | 国产精品扒开腿做爽爽爽软件| 国产伦理一区| 欧美黄色小视频| 国产精品激情电影| 日韩香蕉视频| 欧美成人一区二免费视频软件| 午夜久久资源| 欧美日韩人人澡狠狠躁视频| 久久国产精品99国产精| 亚洲一二区在线| 欧美午夜不卡| 欧美大片免费看| 国产日产欧美a一级在线| 午夜精品理论片| 99re视频这里只有精品| 欧美国产日韩一区二区| 在线观看日韩www视频免费| av成人黄色| 欧美体内she精视频| 亚洲一区二区黄| 亚洲一级特黄| 亚洲每日更新| 亚洲毛片网站| 欧美午夜免费电影| 欧美激情视频一区二区三区在线播放 | 免费一级欧美在线大片| 国产精品日本精品| 欧美中文日韩| 欧美午夜一区二区| 亚洲理伦电影| 日韩一级精品视频在线观看| 久久久精品2019中文字幕神马| 韩国女主播一区| 亚洲一区三区在线观看| 国产日韩一级二级三级| 999亚洲国产精| 亚洲精品在线电影| 欧美成人a视频| 欧美成人dvd在线视频| 欧美日韩xxxxx| 欧美一区二区三区免费看| 久久久久久穴| 一区二区三区四区蜜桃| 亚洲影音先锋| 欧美一区二区三区视频免费| 国产精品久久久久久久久久直播 | 亚洲精品三级| 一本色道久久综合亚洲精品小说| 免费黄网站欧美| 欧美国产在线观看| 亚洲人成在线免费观看| 一区二区三区色| 亚洲影音一区| 免费观看不卡av| 西瓜成人精品人成网站| 裸体女人亚洲精品一区| 欧美大尺度在线观看| 日韩写真在线| 国产精品久久7| 欧美影院成人| 亚洲视频在线观看免费| 欧美日韩午夜| 翔田千里一区二区| 美女视频黄a大片欧美| 亚洲国产成人av好男人在线观看| 一区二区日韩欧美| 久久成人久久爱| 在线观看欧美亚洲| 欧美精品一区二区三区一线天视频| 久久精选视频| 亚洲人午夜精品| 欧美深夜影院| 久久精品一区二区三区四区| 欧美激情精品久久久六区热门| 亚洲伦伦在线| 国产日韩欧美综合一区| 欧美成人四级电影| 亚洲一区日韩| 91久久久久久久久| 欧美激情一区| av72成人在线| 国产一区二区三区四区老人| 欧美成人精品一区二区三区| 9久re热视频在线精品| 久久琪琪电影院| 国产日韩一区二区三区| 欧美成人小视频| 性欧美1819性猛交| 最新亚洲电影| 久久亚洲国产成人| 亚洲一区二区三区影院| 亚洲国产1区| 国产日韩欧美麻豆| 欧美日韩国产91| 久久久久欧美| 午夜日韩激情| 亚洲午夜精品在线| 最新日韩精品| 欧美激情一区二区三区| 久久精品午夜| 伊人一区二区三区久久精品| 国产精品对白刺激久久久| 欧美69wwwcom| 久久三级视频| 亚洲欧洲另类| 欧美国产另类| 久久蜜桃精品| 久久成人综合网| 亚洲欧美一区二区三区久久| 亚洲精品在线视频观看| 亚洲福利av| 韩国视频理论视频久久| 国产老肥熟一区二区三区| 欧美日韩喷水| 欧美日韩国产综合视频在线观看中文 | 亚洲天堂免费在线观看视频| 最新日韩精品| 亚洲九九爱视频| 亚洲茄子视频| 亚洲精品中文字幕女同| 亚洲七七久久综合桃花剧情介绍| 在线播放日韩欧美| 在线播放亚洲| 亚洲人www| 亚洲美女在线视频| 夜夜嗨av一区二区三区免费区| 亚洲精品在线观看免费| 亚洲美女少妇无套啪啪呻吟| 亚洲精品久久视频| 国产日韩欧美亚洲一区| 国产欧美日韩亚洲| 国内一区二区三区| 黄色成人av| 亚洲三级免费| 亚洲天堂成人| 亚洲欧美网站| 久久久久在线观看| 欧美激情一区二区在线| 亚洲欧洲日产国产综合网| 亚洲作爱视频| 欧美有码视频| 欧美1区3d| 欧美性猛交xxxx免费看久久久| 国产精品一区二区久久国产| 国产在线欧美| 国产精品久久久久9999吃药| 国产精品高潮呻吟| 国内激情久久| 亚洲精品中文字| 午夜精品视频| 欧美国产精品日韩| 夜夜精品视频一区二区| 性久久久久久久久| 欧美电影打屁股sp| 国产拍揄自揄精品视频麻豆| 精品99一区二区| 国产视频亚洲精品| 亚洲精品欧美极品| 午夜久久tv| 亚洲丰满在线| 久久综合九色99| 亚洲免费观看高清完整版在线观看熊| 一区二区三区产品免费精品久久75| 午夜久久一区| 欧美日韩国产影片| 伊人精品视频| 亚洲一区二区三区国产| 久久夜色精品国产亚洲aⅴ| 亚洲精品一区久久久久久| 欧美在线观看一区二区三区| 欧美日本一道本| 影音先锋亚洲电影| 欧美一区二区在线视频| 亚洲区一区二| 中文欧美字幕免费| 另类av一区二区| 国产一区二区黄色| 亚洲一区二区三区四区视频|