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

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 小鼠標 閱讀(313) 評論(0)  編輯 收藏 引用 所屬分類: 圖論
<2012年4月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

常用鏈接

隨筆分類(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>
            久久xxxx精品视频| 午夜免费日韩视频| 国产精品久久久久久久久| 亚洲欧美日韩国产中文在线| 男女视频一区二区| 欧美高清在线观看| 欧美国产第二页| 欧美视频精品在线| 国产精品亚洲成人| 国产一区二区三区四区| 亚洲动漫精品| 亚洲男人第一网站| 久久伊人一区二区| 亚洲精品乱码久久久久久蜜桃91| 亚洲国产一区二区三区a毛片| 欧美激情亚洲国产| 日韩性生活视频| 性做久久久久久久免费看| 久久久久九九九九| 欧美激情一区二区三区高清视频| 欧美色道久久88综合亚洲精品| 国产精品久久久久久久久久尿| 国产欧美一区二区三区沐欲 | 欧美激情亚洲一区| 欧美久久久久免费| 狠狠色狠狠色综合日日小说| 99re热精品| 久久国产精品第一页| 亚洲电影观看| 欧美在线一区二区三区| 欧美破处大片在线视频| 国模精品一区二区三区| 正在播放欧美视频| 蜜臀久久久99精品久久久久久| 亚洲精品视频一区| 久久久久九九九| 国产无遮挡一区二区三区毛片日本| 最新国产乱人伦偷精品免费网站| 久久福利视频导航| 在线亚洲精品| 欧美国产日韩一二三区| 国产一区二区成人| 亚洲免费一区二区| 亚洲人成网站精品片在线观看| 欧美有码视频| 国产精品香蕉在线观看| 亚洲作爱视频| 亚洲风情亚aⅴ在线发布| 欧美一级在线视频| 国产精品网站在线| 亚洲在线成人| 99re热这里只有精品免费视频| 美女诱惑黄网站一区| 国产一二精品视频| 久久国产精品第一页| 亚洲一区国产精品| 国产精品美女久久| 亚洲激情网址| 午夜精品亚洲| 欧美一区二区三区啪啪| 伊人精品视频| 99日韩精品| 在线看国产日韩| 亚洲在线观看免费| 黄色一区二区在线观看| 91久久午夜| 国内成人精品一区| av成人免费| 亚洲精一区二区三区| 亚洲欧美激情视频| 亚洲综合精品一区二区| 久久免费视频观看| 亚洲欧美一区二区在线观看| 免费中文字幕日韩欧美| 欧美一区二区在线免费观看| 麻豆国产精品一区二区三区| 午夜精品福利在线| 欧美日韩在线播| 亚洲每日更新| 亚洲一区一卡| 激情久久婷婷| 男女视频一区二区| 一区二区三区在线观看国产| 老司机一区二区| 韩国三级电影一区二区| 欧美一区二区三区在| 久久成人精品无人区| 国产日韩在线视频| 久久视频一区| 亚洲精品国产欧美| 亚洲一级黄色| 国产日韩av一区二区| 亚洲精品国产精品国产自| 久久aⅴ国产紧身牛仔裤| 久久久久久夜精品精品免费| 狠狠色综合网| 欧美日韩午夜在线| 欧美亚洲免费在线| 欧美激情欧美狂野欧美精品| 日韩视频一区二区三区| 国产精品久久久久久妇女6080| 午夜精品一区二区三区电影天堂 | 国内精品视频666| 欧美精品v日韩精品v国产精品 | 美玉足脚交一区二区三区图片| 在线色欧美三级视频| 欧美激情精品久久久久久免费印度| 99av国产精品欲麻豆| 久久亚洲精品视频| 午夜精品免费视频| 亚洲精品黄色| 亚洲国产精品成人| 伊人久久成人| 伊人夜夜躁av伊人久久| 国产欧美1区2区3区| 欧美午夜精品一区二区三区| 欧美阿v一级看视频| 久久久久久精| 久久人人97超碰人人澡爱香蕉| 亚洲一区免费看| 一区二区三区波多野结衣在线观看| 免费久久久一本精品久久区| 午夜精品一区二区三区在线视| 一级日韩一区在线观看| 亚洲精品123区| 亚洲国产专区校园欧美| 久久精品国产免费看久久精品| 亚洲欧美中日韩| 久久夜色精品国产欧美乱| 久久人人爽人人| 欧美日本亚洲韩国国产| 欧美日韩在线看| 国产精品影音先锋| 在线看欧美日韩| 亚洲欧美日韩一区在线| 老鸭窝毛片一区二区三区| 亚洲国产va精品久久久不卡综合| 亚洲国产成人久久综合| 亚洲精品一区二区三区婷婷月| 在线亚洲欧美专区二区| 久久精彩免费视频| 欧美日韩一区二区视频在线| 国产精品外国| 亚洲一区二区精品视频| 久久亚洲一区二区| 亚洲尤物在线视频观看| 欧美a级一区| 国产欧美一区二区在线观看| 狠狠入ady亚洲精品经典电影| 亚洲最新在线| 日韩午夜在线| 欧美日韩一区二区三区高清| 亚洲精品无人区| 亚洲国产成人tv| 猛干欧美女孩| 91久久久亚洲精品| 亚洲高清在线视频| 欧美国产免费| 亚洲精品欧美精品| 亚洲国产婷婷综合在线精品 | 制服诱惑一区二区| 99视频在线精品国自产拍免费观看| 开元免费观看欧美电视剧网站| 国内激情久久| 欧美大片一区二区| 欧美日韩成人在线播放| 99成人在线| 亚洲一区网站| 欧美一区二区三区免费看| 国产欧美高清| 欧美搞黄网站| 国产精品久久999| 久久视频一区二区| 欧美成人在线免费视频| 亚洲欧美日韩国产一区二区三区| 亚洲综合丁香| 亚洲第一网站| 亚洲欧美日韩人成在线播放| 在线欧美日韩| 久久大香伊蕉在人线观看热2| 国产美女一区二区| 国产精品99久久久久久宅男| 久久人人97超碰国产公开结果 | 欧美日韩精品免费| 欧美在线视频导航| 欧美日本高清一区| 老色鬼久久亚洲一区二区| 欧美午夜电影完整版| 久久久久久久波多野高潮日日 | 亚洲激情在线视频| 国产综合色产| 校园春色国产精品| 久久av一区二区| 国产精品亚洲综合一区在线观看 | 欧美成人亚洲| 一区在线观看视频| 麻豆精品一区二区综合av| 欧美在线一二三区| 国产区欧美区日韩区| 欧美一级网站|