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

隨筆 - 19, 文章 - 0, 評論 - 2, 引用 - 0
數據加載中……

杭電1142 A Walk Through the Forest

        這一星期我在學習單源最短路徑,今天是這一星期的最后一天。我半寫半參考的寫出了這一題,要用到DFS+Dijsktra。

        題目是讓求一個點到另一個點的“前進的”(就是越走離家越近,這是一個難點,不然就做不出來)路徑的條數。算法思想是:先求出家到每一個頂點的最短路徑,然后用深搜求出從公司到家的路徑的條數。

 

#include <stdio.h>
#include 
<memory.h>
#define debug 1
#define N 1010
//要注意不要把Max定義的太大,不然會在做加法時溢出,
// 當然,要是不做加法,就沒事了,可以定義為2147483647
//也可以用 __int64 ,但是那樣的效率比較低 
#define Max 10000000

int n ;
int map[N][N], dis[N], used[N], num[N] ;

void Input( )
{
    
int i, j, x, m, y, distance ;
    
for( i=1; i<=n; ++i ){
        
for( j=1; j<=n; ++j ){
            map[i][j] 
= Max ;
        }

        
//自己到自己的最短路徑是0 
        map[i][i] = 0 ;
    }
    
    scanf(
"%d"&m ) ; 
    
for( i=0; i<m; ++i ){
        scanf(
"%d%d%d"&x, &y, &distance ) ;
        
//用無向圖來存儲數據 
        map[x][y] = distance ;
        map[y][x] 
= distance ;
    }
    
}


void Dijstra( int v )
{
    
int i, j, min, index ;
    
for( i=1; i<=n; ++i ){
        
//求家到各個頂點的初始路徑的距離,如果沒有路徑,就是Max 
        dis[i] = map[v][i] ;
        
//用來標記是否已經求過 
        used[i] = 0 ;
    }

    
// 從家里出發,家已經走過,標記為1,下同 
    used[v] = 1 ;
    
for( i=1; i<=n; ++i ){
        min 
= Max ;
        index 
= v ;
        
//找到與每一個已標記過的頂點之間距離最小的頂點 
        for( j=1; j<=n; ++j ){
            
if!used[j] && min > dis[j] ){
                index 
= j ;
                min 
= dis[j] ;
            }

        }

        
//已經找到,標記 
        used[index] = 1 ;
        
//更新與剛找到的頂點相鄰的頂點的最短路徑 
        for( j=1; j<=n; ++j ){
            
if( dis[j] > dis[index] + map[index][j] )
                dis[j] 
= dis[index] + map[index][j] ;
        }

    }
           
}


int DFS( int nod )
{
    
int i, count ;
    
//如果已到家,就返回1,表示找到了一條路 
    if( nod == 2 )
        
return 1 ;
    
//如果這一點已經求過,就返回這一點到家的路徑的條數    
    if( num[nod] > 0 )
        
return num[nod] ;    
    count 
= 0 ;
    
//對每一個頂點進行判斷,并求路徑的條數 
    for( i=1; i<=n; ++i ){
        
if( map[i][nod]<Max && dis[i]<dis[nod] )
            count 
+= DFS( i ) ;
    }

    
//標記路徑的條數,并返回值 
    num[nod] = count ;
    
return count ;        
}


int main()
{
    
// 輸入輸出的重定向,便于調試,在提交時要把debug改成0 
    #if debug
    freopen(
"C:\\Documents and Settings\\Administrator\\桌面\\in.in","r",stdin) ;
    freopen(
"C:\\Documents and Settings\\Administrator\\桌面\\out.out","w",stdout) ;
    
#endif
    
    
while( scanf("%d",&n) && n ){
        
//讀入數據 
        Input( ) ;
        
//調用Dijsktra 求家到每一個節點的最短路徑 
        Dijstra( 2 ) ;
        
// 數據初始化 
        memset( num, 0sizeof(num) ) ;
        
// 用深搜求的路徑的條數 
        printf("%d\n", DFS( 1 ) ) ; 
    }
        
    
return 0 ;
}

posted on 2009-05-03 17:35 祝你好運! 閱讀(540) 評論(1)  編輯 收藏 引用

評論

# re: 杭電1142 A Walk Through the Forest  回復  更多評論   

我想請問下,你的程序測試如下數據:
5 7
1 3 2
1 4 2
3 4 3
1 5 12
4 2 34
5 2 24
5 3 11
輸出4,為什么不是2?
如果有空的話請聯系我:357384984@qq.com
2011-04-23 21:47 | Veegin

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产精品一区二区久久| 亚洲国产精品一区二区www| 欧美涩涩视频| 亚洲人成网站在线播| 久久女同精品一区二区| 亚洲午夜在线观看视频在线| 欧美日韩黄视频| 日韩视频精品在线| 老司机一区二区三区| 亚洲女优在线| 国产精品麻豆va在线播放| 亚洲一区国产精品| 日韩网站在线观看| 欧美日韩国产精品专区| 亚洲精选视频在线| 亚洲第一网站| 欧美~级网站不卡| 亚洲精品视频啊美女在线直播| 欧美成年人网站| 免费在线欧美视频| 亚洲国产一二三| 亚洲激情在线观看| 欧美精品在欧美一区二区少妇| 亚洲国产日韩欧美综合久久| 亚洲国产成人久久| 欧美日韩精品在线观看| 亚洲一区二区三| 中文成人激情娱乐网| 欧美亚州一区二区三区| 亚洲欧美日韩一区在线| 亚洲在线免费视频| 国产欧美精品在线播放| 久久精品亚洲一区二区| 久久久久久久欧美精品| 亚洲国产精品高清久久久| 欧美激情va永久在线播放| 欧美日本国产| 午夜精品区一区二区三| 久久九九精品| 中文日韩在线| 性做久久久久久| 亚洲区中文字幕| 在线视频一区观看| 国产午夜精品理论片a级探花| 久久久久国产精品一区二区| 久久婷婷影院| 亚洲伊人一本大道中文字幕| 欧美一级一区| 99re视频这里只有精品| 欧美亚洲自偷自偷| 久久夜色精品国产亚洲aⅴ| 日韩视频免费观看| 欧美在线三级| 一区二区三区视频在线观看| 欧美亚洲三级| 中文在线一区| 久久久久久一区二区| 一区二区三区黄色| 久久黄色网页| 亚洲欧美精品中文字幕在线| 美女视频一区免费观看| 午夜在线播放视频欧美| 久久视频在线免费观看| 亚洲永久免费观看| 免费观看国产成人| 久久激情中文| 欧美日韩免费区域视频在线观看| 久久激情综合网| 国产精品美女久久福利网站| 欧美黄色视屏| 国产自产在线视频一区| 一区二区欧美日韩视频| 亚洲黄色影片| 久久激情久久| 欧美在线免费观看| 欧美日本网站| 亚洲成人自拍视频| 国产综合亚洲精品一区二| 亚洲一区二区三区久久| 中文无字幕一区二区三区| 欧美激情视频一区二区三区免费| 久久久久久久久久码影片| 国产精品美女久久久久av超清 | 亚洲欧美在线免费观看| 欧美成人自拍视频| 久久综合亚洲社区| 国产欧美在线观看| 亚洲欧美另类在线观看| 亚洲自拍偷拍色片视频| 欧美日韩精品久久久| 亚洲丰满少妇videoshd| 亚洲国产高清在线| 久久久久久噜噜噜久久久精品| 久久国产精品久久久久久久久久 | 欧美久久久久久久久久| 欧美激情第三页| 在线精品亚洲| 欧美va天堂在线| aa日韩免费精品视频一| 欧美大胆人体视频| 亚洲欧洲视频| 亚洲私人影院在线观看| 国产精品久久久久aaaa九色| 亚洲一级片在线观看| 欧美一区二区三区喷汁尤物| 国产欧美日韩一级| 欧美在线视频一区二区| 免费人成精品欧美精品| 1769国内精品视频在线播放| 欧美aa国产视频| 一区二区久久| 久久久人人人| 亚洲人成人一区二区在线观看| 欧美精品一区二区三区四区| 一区二区三区回区在观看免费视频| 亚洲线精品一区二区三区八戒| 国产精品av久久久久久麻豆网| 亚洲欧美日韩中文在线制服| 两个人的视频www国产精品| 亚洲人成网站在线观看播放| 欧美视频中文字幕| 午夜国产欧美理论在线播放| 免播放器亚洲一区| 99爱精品视频| 国产欧美一区二区精品仙草咪| 久久乐国产精品| 日韩视频中文字幕| 亚洲黄色小视频| 欧美色偷偷大香| 欧美在线视频一区二区| 亚洲清纯自拍| 久久久久久伊人| 一本色道久久综合狠狠躁篇的优点 | 免播放器亚洲| 亚洲永久网站| 91久久精品美女高潮| 国产精品视频久久一区| 久久这里只精品最新地址| 正在播放欧美视频| 亚洲第一精品电影| 欧美在线视频一区二区| 亚洲日本在线观看| 国产色综合天天综合网| 欧美久色视频| 久久精品国产精品亚洲| 这里只有精品丝袜| 亚洲第一精品夜夜躁人人躁 | 久久国产66| 亚洲深夜福利视频| 亚洲国产三级在线| 久久久青草婷婷精品综合日韩| 亚洲一区二区免费视频| 亚洲人成在线播放| 樱桃视频在线观看一区| 国产精品一区毛片| 欧美日韩国产色综合一二三四| 久久久久久久综合| 欧美专区18| 亚洲欧美精品suv| 99精品欧美一区二区蜜桃免费| 欧美丰满高潮xxxx喷水动漫| 久久激情一区| 欧美在线视频不卡| 午夜精品视频在线观看| 一区二区三区免费看| 亚洲国产高清自拍| 影音先锋久久精品| 经典三级久久| 激情六月综合| 精品福利免费观看| 老司机精品视频网站| 欧美影视一区| 欧美一区二区三区啪啪| 亚洲一区二区三区免费在线观看 | 国产精品国产三级国产专播品爱网| 欧美激情中文不卡| 欧美福利在线| 欧美经典一区二区| 欧美激情aaaa| 欧美日韩福利| 国产精品盗摄久久久| 欧美色区777第一页| 欧美视频免费在线| 国产精品高清在线| 国产精品看片资源| 国产欧美成人| 黑丝一区二区| 在线欧美亚洲| 亚洲精品少妇| 亚洲一区免费观看| 亚洲欧美日韩中文播放| 欧美一级视频精品观看| 久久精品国产99精品国产亚洲性色| 久久av一区二区三区漫画| 久久亚洲影音av资源网| 欧美激情久久久| 99re66热这里只有精品4| 亚洲一区二区三区午夜| 久久福利影视| 欧美激情精品久久久久久久变态|