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

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2750
成語接龍問題,抽象出來就是簡單的最簡單的單源最短路徑問題,Dijkstra算法。
算法設計課上剛講過貪心算法,Dijkstra算法書上有代碼實現,比著書上的代碼copy了一遍,提交后居然奇跡般的出現了段錯誤!這叫我情何以堪啊。FAQ上說段錯誤有兩種情況:數組下標越界和棧溢出。算法中沒有遞歸,不可能爆棧,認真檢查每一個用到下標的地方、每個for的起始點,看不出任何毛病。難道代碼比著書上抄錯了,對照了一下,發現第二個循環開始時沒有初始化u,問題就出在這里,u是用來記錄下一個可加入集合s的節點的,它的更新來自于所有可利用的dist[]中最下的那個。
經驗總結:變量不要忘記初始化。

#include<stdio.h>
#include
<string.h>
#include
<stdlib.h>
#define LENID 1050
#define RMAX 10000
#define LENS 8
typedef 
struct
{
    
char *a;
    
char *b;
    
int t;
}
Idiom;
int N;
int dist[LENID];
int c[LENID][LENID];
int Dijkstra()
{
    
int i, j;
    
int s[LENID];
    
    
for(i = 0; i < N; i++)// init
    {
        dist[i] 
= c[0][i];
        s[i] 
= 0;
    }

    dist[
0= 0;
    s[
0= 1;
    
    
int u = 0;// remeber to init u!!
    for(i = 0; i < N - 1; i++)
    
{
        
int temp = RMAX;
        
for(j = 0; j < N; j++)
        
{
            
if(s[j] == 0 && dist[j] < temp)
            
{
                u 
= j;
                temp 
= dist[j];
            }

        }

        s[u] 
= 1;
        
if(u == N - 1)
        
{
            
return dist[u];
        }

        
for(j = 0; j < N; j++)
        
{
            
if(s[j] == 0 && c[u][j] < RMAX)
            
{
                
int newdist = dist[u] + c[u][j];
                
if(newdist < dist[j])
                    dist[j] 
= newdist;
            }

        }

    }

    
return dist[N - 1];
}

int main()
{
    
int T;
    
int i, j;
    Idiom id[LENID];
    
char str[100], sa[8], sb[LENS];
    scanf(
"%d"&N);
    
while(N != 0)
    
{
        
for(i = 0; i < N; i++)
        
{
            scanf(
"%d%s"&T, str);
            
int len = strlen(str);
            
for(j = 0; j < 4; j++)
            
{
                sa[j] 
= str[j];
                sb[j] 
= str[len - 4 + j];
            }

            sa[j] 
= sb[j] = '\0';
            id[i].a 
= (char *)malloc(sizeof(char* LENS);
            id[i].b 
= (char *)malloc(sizeof(char* LENS);
            strcpy(id[i].a, sa);
            strcpy(id[i].b, sb);
            id[i].t 
= T;
        }

        
for(i = 0; i < N; i++)// init c[][]
            for(j = 0; j < N; j++)
                c[i][j] 
= RMAX;
        
for(i = 0; i < N; i++)
            
for(j = i + 1; j < N; j++)
            
{
                
if(strcmp(id[i].b, id[j].a) == 0)
                    c[i][j] 
= id[i].t;
                
else if(strcmp(id[j].b, id[i].a) == 0)
                    c[j][i] 
= id[j].t;
            }

        
int r = Dijkstra();

        
if(r == RMAX)
            printf(
"-1\n");
        
else
            printf(
"%d\n", r);
        scanf(
"%d"&N);
    }

}


posted on 2012-04-25 18:08 小鼠標 閱讀(315) 評論(0)  編輯 收藏 引用 所屬分類: 圖論
<2013年7月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

常用鏈接

隨筆分類(111)

隨筆檔案(127)

friends

最新評論

  • 1.?re: 線段樹
  • 是這個樣子的,所以在OJ有時候“卡住”了也不要太灰心,沒準真的不是自己的原因呢。
    加油,祝你好運啦!
  • --小鼠標
  • 2.?re: 線段樹
  • 對于編程競賽來說,Java所需時間一般為C/C++的兩倍。合理的競賽給Java的時間限制是給C/C++的兩倍。
  • --傷心的筆
  • 3.?re: poj1273--網絡流
  • 過來看看你。
  • --achiberx
  • 4.?re: (轉)ubuntu11.10無法啟動無線網絡的解決方法
  • 膜拜大神。。查了一個下午資料終于在這里解決了問題。。神牛說的區域賽難道是ACM區域賽。。?
  • --Hang
  • 5.?re: 快速排序、線性時間選擇
  • 博主,謝謝你的文章。你的方法可以很好的處理分區基準在數組中重復的情況,書上的方法遇到這種輸入會堆棧溢出。書上給出了解釋但給的方法貌似不簡潔。
  • --lsxqw2004

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久久亚洲国产美女国产盗摄| 午夜国产精品影院在线观看| 亚洲欧洲99久久| 久久久久久网址| 国产精品日韩欧美一区| 亚洲网站视频福利| 欧美在线视频一区二区三区| 亚洲无限av看| 国产乱码精品一区二区三区忘忧草| 香港久久久电影| 欧美一区二区视频免费观看| 国产日韩精品在线播放| 久久久久久穴| 国产精品欧美日韩一区| 一本久道久久久| 欧美性大战xxxxx久久久| 亚洲欧美清纯在线制服| 久久激情视频| 亚洲精品乱码久久久久| 最新日韩精品| 亚洲国产99| 欧美日韩视频在线一区二区| 亚洲无人区一区| 欧美日本韩国一区| 午夜影视日本亚洲欧洲精品| 欧美日韩一区二区三区四区在线观看| 亚洲福利在线观看| 亚洲人成在线观看| 亚洲永久精品国产| 亚洲激情专区| 亚洲欧美综合v| 亚洲精品美女在线观看| 蜜桃久久av一区| 午夜性色一区二区三区免费视频| 欧美日韩网址| 亚洲一区一卡| 欧美在线影院在线视频| 国产一区二区无遮挡| 亚洲精品偷拍| 好吊日精品视频| 亚洲精品色图| 亚洲综合三区| 欧美激情精品久久久久久久变态| 欧美亚洲视频一区二区| 国产欧美精品va在线观看| 日韩视频永久免费| 亚洲欧洲日韩综合二区| 欧美日韩大陆在线| 亚洲第一黄色| 亚洲视频自拍偷拍| 国产日韩精品在线| 久久婷婷av| 久久在线免费观看视频| 国产精品护士白丝一区av| 亚洲欧洲精品一区| 亚洲嫩草精品久久| 激情五月***国产精品| 国产精品99久久99久久久二8 | 亚洲国产精品精华液2区45| 一区二区三区四区五区视频| 亚洲国产女人aaa毛片在线| 欧美激情精品久久久久久| 亚洲主播在线观看| 亚洲在线1234| 国内精品视频久久| 欧美在线|欧美| 欧美在线免费观看视频| 亚洲国产精品成人综合色在线婷婷 | 国产精品99久久99久久久二8| 久久理论片午夜琪琪电影网| 亚洲精品视频一区二区三区| 国产美女一区二区| 欧美激情日韩| 亚洲精品综合久久中文字幕| 久久精品99| 影音先锋亚洲一区| 久久夜色精品国产亚洲aⅴ| 99视频在线精品国自产拍免费观看 | 欧美在线播放| 国产日韩专区| 欧美日韩一区高清| 久久在线观看视频| 亚洲观看高清完整版在线观看| 欧美一区二区在线免费播放| 99视频精品全部免费在线| 欧美精品乱码久久久久久按摩| 性刺激综合网| 嫩模写真一区二区三区三州| 在线观看日韩精品| 国产欧美一区二区精品忘忧草 | 美日韩精品视频| 亚洲在线观看视频| 亚洲精选视频在线| 欧美不卡高清| 老司机精品视频网站| 亚洲看片免费| 国产精品jvid在线观看蜜臀| 欧美好吊妞视频| 老鸭窝毛片一区二区三区| 久久gogo国模裸体人体| 亚洲欧美中文在线视频| 亚洲欧美成人网| 制服丝袜激情欧洲亚洲| 99热精品在线| 一本久久综合亚洲鲁鲁五月天| 日韩视频国产视频| 99国产精品自拍| aa级大片欧美| 亚洲视频一区二区| 亚洲一卡久久| 亚洲欧美激情一区二区| 亚洲欧美在线高清| 亚洲一区制服诱惑| 午夜激情亚洲| 久久久久久久久久久一区| 久久久久久久一区二区| 久久久精品欧美丰满| 一本色道婷婷久久欧美| 一本色道久久88综合亚洲精品ⅰ| 99这里有精品| 亚洲一区二区在线观看视频| 亚洲欧美在线磁力| 久久er99精品| 欧美成人在线影院| 久久精品一二三区| 久久综合电影| 欧美黄色免费| 国产精品国产a| 国产一区视频在线看| 亚洲激情在线| 亚洲一区在线播放| 久久久xxx| 午夜日韩av| 久久综合九色九九| 91久久精品国产| 亚洲天堂男人| 欧美在线网站| 欧美经典一区二区| 国产精品影片在线观看| 怡红院精品视频| 亚洲一区二区三区影院| 久久精品官网| 亚洲人成人一区二区三区| 美女露胸一区二区三区| 久久久不卡网国产精品一区| 欧美高清在线一区| 久久综合中文字幕| 亚洲欧洲精品一区| 校园春色综合网| 欧美精品午夜| 国产一在线精品一区在线观看| 亚洲精品在线一区二区| 欧美一区二区三区四区在线观看 | 麻豆国产精品va在线观看不卡| 亚洲国产精品成人精品 | 亚洲午夜在线| 久久综合中文色婷婷| 日韩视频三区| 久久激情婷婷| 国产精品久久久久久久一区探花| 欧美日韩在线播放一区| 国内外成人在线| 亚洲午夜国产一区99re久久| 欧美成人性生活| 性感少妇一区| 国产精品激情电影| 9色porny自拍视频一区二区| 麻豆成人综合网| 亚洲欧美一区二区原创| 欧美成人高清| 精品91久久久久| 欧美亚洲综合网| 亚洲毛片在线看| 欧美国产亚洲另类动漫| 在线国产精品一区| 日韩一区二区精品视频| 亚洲自拍偷拍视频| 亚洲日本一区二区| 麻豆精品视频| 精品99一区二区| 久久久精品免费视频| 亚洲综合久久久久| 国产精品美女主播| 亚洲午夜精品福利| 亚洲精品综合精品自拍| 欧美高清hd18日本| 亚洲国产一区二区三区高清 | 亚洲欧美在线高清| 亚洲精品国产欧美| 欧美激情久久久久| 亚洲狠狠丁香婷婷综合久久久| 每日更新成人在线视频| 欧美在线一区二区| 国产亚洲在线| 久久午夜av| 久久综合伊人77777蜜臀| 永久91嫩草亚洲精品人人| 免费看的黄色欧美网站| 久久婷婷av| 亚洲人成小说网站色在线|