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

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久久国产综合久久蜜月精品| 亚洲国产精品v| 欧美亚州一区二区三区| 久久精品国产2020观看福利| 葵司免费一区二区三区四区五区| 亚洲人妖在线| 亚洲免费在线观看视频| 原创国产精品91| 亚洲精品乱码| 国产午夜久久久久| 亚洲国产你懂的| 国产麻豆成人精品| 欧美成人一二三| 国产精品久久久久久久久果冻传媒| 欧美一区二区观看视频| 久热综合在线亚洲精品| 午夜久久99| 欧美成人在线免费观看| 午夜在线成人av| 欧美福利电影网| 久久久av毛片精品| 欧美日韩成人综合| 久久婷婷国产综合国色天香| 欧美人妖在线观看| 每日更新成人在线视频| 国产精品素人视频| 亚洲精品日本| 亚洲第一页中文字幕| 一本色道久久综合| 亚洲乱码视频| 久久久亚洲人| 久久精品最新地址| 欧美体内谢she精2性欧美| 欧美激情在线播放| 国内精品视频在线观看| 亚洲私拍自拍| 亚洲天堂久久| 欧美激情亚洲精品| 免费中文日韩| 在线观看欧美精品| 久久99伊人| 欧美伊人精品成人久久综合97| 欧美日韩精品欧美日韩精品一| 亚洲成人在线视频播放 | 亚洲国产成人91精品| 国产亚洲美州欧州综合国| 99视频有精品| 一本色道综合亚洲| 欧美电影免费| 亚洲国产一区二区精品专区| 亚洲国产精品小视频| 久久亚洲不卡| 欧美福利视频在线| 1024亚洲| 欧美黑人多人双交| 亚洲人成亚洲人成在线观看| 91久久久久久国产精品| 久热精品在线视频| 亚洲黄色一区| 一级日韩一区在线观看| 欧美理论片在线观看| 亚洲美女毛片| 一区二区三区免费观看| 欧美日韩国产美| 在线亚洲免费视频| 久久国产精彩视频| 伊人久久大香线蕉综合热线| 看片网站欧美日韩| 亚洲黄色成人| 亚洲尤物在线视频观看| 国产精品美女久久久浪潮软件| 亚洲主播在线| 免费在线日韩av| 亚洲激情视频网站| 欧美视频中文一区二区三区在线观看 | 影音先锋成人资源站| 久久久久久一区二区| 欧美国产日韩视频| 一区二区三区四区五区在线| 国产精品美腿一区在线看 | 亚洲精品国精品久久99热| 亚洲精品中文字| 欧美日韩午夜剧场| 欧美制服丝袜| 欧美高清视频在线播放| 亚洲一卡二卡三卡四卡五卡| 国产欧美日韩在线| 美玉足脚交一区二区三区图片| 日韩午夜一区| 久久亚洲高清| 亚洲性人人天天夜夜摸| 国产日韩综合一区二区性色av| 久久精品国产久精国产爱| 亚洲国产婷婷| 久久精品国产免费观看| 99视频一区| 激情av一区| 国产精品进线69影院| 久久综合久色欧美综合狠狠| 99re热这里只有精品免费视频| 久久精品日产第一区二区| 日韩视频免费大全中文字幕| 国产情侣一区| 欧美三级日本三级少妇99| 久久精品免费| 午夜亚洲福利在线老司机| 亚洲精品少妇| 亚洲二区在线观看| 久久人人97超碰国产公开结果| 一本大道久久精品懂色aⅴ| 精品99一区二区三区| 国产精品视频一二| 欧美视频精品在线| 欧美激情aⅴ一区二区三区| 久久精品国产99国产精品澳门| 亚洲一区欧美一区| 一二三四社区欧美黄| 亚洲欧洲精品成人久久奇米网| 久久夜色精品国产欧美乱| 午夜精品成人在线| 亚洲一区二区三区激情| 日韩视频在线永久播放| 亚洲国产日韩综合一区| 永久免费精品影视网站| 合欧美一区二区三区| 国产日韩欧美| 国产亚洲aⅴaaaaaa毛片| 国产精品久久久久久久9999| 欧美日韩视频在线一区二区| 欧美日韩不卡视频| 欧美日韩高清在线观看| 欧美精品粉嫩高潮一区二区 | 欧美日韩亚洲网| 欧美精品xxxxbbbb| 欧美不卡福利| 欧美激情视频在线播放 | 久久爱www.| 久久aⅴ国产紧身牛仔裤| 性欧美8khd高清极品| 欧美一区二区在线视频| 久久精品免视看| 牛牛精品成人免费视频| 欧美成人网在线| 欧美日韩国产高清视频| 欧美午夜精品久久久久久超碰| 欧美日韩一区二区三区免费| 国产精品老女人精品视频| 国产女优一区| 伊人久久大香线蕉av超碰演员| 亚洲电影免费观看高清| 亚洲精品国产系列| 亚洲影视在线| 久久亚洲电影| 亚洲国产人成综合网站| 一区二区三区精品| 欧美一区二区高清| 女同性一区二区三区人了人一| 欧美日韩国产成人在线观看| 国产精品久久综合| 精久久久久久久久久久| 亚洲理伦在线| 亚洲欧洲99久久| 欧美+亚洲+精品+三区| 亚洲精品国产精品国自产在线| 亚洲午夜精品17c| 久久综合给合| 国产精品美女诱惑| 亚洲国产小视频| 午夜免费久久久久| 欧美激情亚洲自拍| 亚洲欧美精品在线观看| 免费视频一区| 国产欧美一区二区三区另类精品| 亚洲观看高清完整版在线观看| 亚洲尤物在线视频观看| 欧美国产精品va在线观看| 中国女人久久久| 欧美va亚洲va香蕉在线| 国产欧美一区二区三区久久人妖| 亚洲精品黄色| 久久人人超碰| 亚洲中午字幕| 欧美午夜在线视频| 亚洲日本中文字幕| 久久综合精品一区| 亚洲欧美日韩国产成人精品影院|