• <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>

            Hdoj 2181 哈密頓繞行世界問題

            Problem Description
            一個規則的實心十二面體,它的 20個頂點標出世界著名的20個城市,你從一個城市出發經過每個城市剛好一次后回到出發的城市。
             

            Input
            前20行的第i行有3個數,表示與第i個城市相鄰的3個城市.第20行以后每行有1個數m,m<=20,m>=1.m=0退出.
             

            Output
            輸出從第m個城市出發經過每個城市1次又回到m的所有路線,如有多條路線,按字典序輸出,每行1條路線.每行首先輸出是第幾條路線.然后個一個: 后列出經過的城市.參看Sample output
             

            Sample Input
            2 5 20
            1 3 12
            2 4 10
            3 5 8
            1 4 6
            5 7 19
            6 8 17
            4 7 9
            8 10 16
            3 9 11
            10 12 15
            2 11 13
            12 14 20
            13 15 18
            11 14 16
            9 15 17
            7 16 18
            14 17 19
            6 18 20
            1 13 19
            5
            0
             

            Sample Output
            1:  5 1 2 3 4 8 7 17 18 14 15 16 9 10 11 12 13 20 19 6 5
            2:  5 1 2 3 4 8 9 10 11 12 13 20 19 18 14 15 16 17 7 6 5
            3:  5 1 2 3 10 9 16 17 18 14 15 11 12 13 20 19 6 7 8 4 5
            4:  5 1 2 3 10 11 12 13 20 19 6 7 17 18 14 15 16 9 8 4 5
            5:  5 1 2 12 11 10 3 4 8 9 16 15 14 13 20 19 18 17 7 6 5
            6:  5 1 2 12 11 15 14 13 20 19 18 17 16 9 10 3 4 8 7 6 5
            7:  5 1 2 12 11 15 16 9 10 3 4 8 7 17 18 14 13 20 19 6 5
            8:  5 1 2 12 11 15 16 17 18 14 13 20 19 6 7 8 9 10 3 4 5
            9:  5 1 2 12 13 20 19 6 7 8 9 16 17 18 14 15 11 10 3 4 5
            10:  5 1 2 12 13 20 19 18 14 15 11 10 3 4 8 9 16 17 7 6 5
            11:  5 1 20 13 12 2 3 4 8 7 17 16 9 10 11 15 14 18 19 6 5
            12:  5 1 20 13 12 2 3 10 11 15 14 18 19 6 7 17 16 9 8 4 5
            13:  5 1 20 13 14 15 11 12 2 3 10 9 16 17 18 19 6 7 8 4 5
            14:  5 1 20 13 14 15 16 9 10 11 12 2 3 4 8 7 17 18 19 6 5
            15:  5 1 20 13 14 15 16 17 18 19 6 7 8 9 10 11 12 2 3 4 5
            16:  5 1 20 13 14 18 19 6 7 17 16 15 11 12 2 3 10 9 8 4 5
            17:  5 1 20 19 6 7 8 9 10 11 15 16 17 18 14 13 12 2 3 4 5
            18:  5 1 20 19 6 7 17 18 14 13 12 2 3 10 11 15 16 9 8 4 5
            19:  5 1 20 19 18 14 13 12 2 3 4 8 9 10 11 15 16 17 7 6 5
            20:  5 1 20 19 18 17 16 9 10 11 15 14 13 12 2 3 4 8 7 6 5
            21:  5 4 3 2 1 20 13 12 11 10 9 8 7 17 16 15 14 18 19 6 5
            22:  5 4 3 2 1 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5
            23:  5 4 3 2 12 11 10 9 8 7 6 19 18 17 16 15 14 13 20 1 5
            24:  5 4 3 2 12 13 14 18 17 16 15 11 10 9 8 7 6 19 20 1 5
            25:  5 4 3 10 9 8 7 6 19 20 13 14 18 17 16 15 11 12 2 1 5
            26:  5 4 3 10 9 8 7 17 16 15 11 12 2 1 20 13 14 18 19 6 5
            27:  5 4 3 10 11 12 2 1 20 13 14 15 16 9 8 7 17 18 19 6 5
            28:  5 4 3 10 11 15 14 13 12 2 1 20 19 18 17 16 9 8 7 6 5
            29:  5 4 3 10 11 15 14 18 17 16 9 8 7 6 19 20 13 12 2 1 5
            30:  5 4 3 10 11 15 16 9 8 7 17 18 14 13 12 2 1 20 19 6 5
            31:  5 4 8 7 6 19 18 17 16 9 10 3 2 12 11 15 14 13 20 1 5
            32:  5 4 8 7 6 19 20 13 12 11 15 14 18 17 16 9 10 3 2 1 5
            33:  5 4 8 7 17 16 9 10 3 2 1 20 13 12 11 15 14 18 19 6 5
            34:  5 4 8 7 17 18 14 13 12 11 15 16 9 10 3 2 1 20 19 6 5
            35:  5 4 8 9 10 3 2 1 20 19 18 14 13 12 11 15 16 17 7 6 5
            36:  5 4 8 9 10 3 2 12 11 15 16 17 7 6 19 18 14 13 20 1 5
            37:  5 4 8 9 16 15 11 10 3 2 12 13 14 18 17 7 6 19 20 1 5
            38:  5 4 8 9 16 15 14 13 12 11 10 3 2 1 20 19 18 17 7 6 5
            39:  5 4 8 9 16 15 14 18 17 7 6 19 20 13 12 11 10 3 2 1 5
            40:  5 4 8 9 16 17 7 6 19 18 14 15 11 10 3 2 12 13 20 1 5
            41:  5 6 7 8 4 3 2 12 13 14 15 11 10 9 16 17 18 19 20 1 5
            42:  5 6 7 8 4 3 10 9 16 17 18 19 20 13 14 15 11 12 2 1 5
            43:  5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5
            44:  5 6 7 8 9 16 17 18 19 20 1 2 12 13 14 15 11 10 3 4 5
            45:  5 6 7 17 16 9 8 4 3 10 11 15 14 18 19 20 13 12 2 1 5
            46:  5 6 7 17 16 15 11 10 9 8 4 3 2 12 13 14 18 19 20 1 5
            47:  5 6 7 17 16 15 11 12 13 14 18 19 20 1 2 3 10 9 8 4 5
            48:  5 6 7 17 16 15 14 18 19 20 13 12 11 10 9 8 4 3 2 1 5
            49:  5 6 7 17 18 19 20 1 2 3 10 11 12 13 14 15 16 9 8 4 5
            50:  5 6 7 17 18 19 20 13 14 15 16 9 8 4 3 10 11 12 2 1 5
            51:  5 6 19 18 14 13 20 1 2 12 11 15 16 17 7 8 9 10 3 4 5
            52:  5 6 19 18 14 15 11 10 9 16 17 7 8 4 3 2 12 13 20 1 5
            53:  5 6 19 18 14 15 11 12 13 20 1 2 3 10 9 16 17 7 8 4 5
            54:  5 6 19 18 14 15 16 17 7 8 9 10 11 12 13 20 1 2 3 4 5
            55:  5 6 19 18 17 7 8 4 3 2 12 11 10 9 16 15 14 13 20 1 5
            56:  5 6 19 18 17 7 8 9 16 15 14 13 20 1 2 12 11 10 3 4 5
            57:  5 6 19 20 1 2 3 10 9 16 15 11 12 13 14 18 17 7 8 4 5
            58:  5 6 19 20 1 2 12 13 14 18 17 7 8 9 16 15 11 10 3 4 5
            59:  5 6 19 20 13 12 11 10 9 16 15 14 18 17 7 8 4 3 2 1 5
            60:  5 6 19 20 13 14 18 17 7 8 4 3 10 9 16 15 11 12 2 1 5
            分析:典型的搜索問題,搜索完除起點以外的19個點時,判斷最后那個點是否與起點相連,相連則輸出路徑,否則退出。注意回溯,否則只會輸出1條路徑。
             1 #include <iostream>
             2 const int N = 21;
             3 bool visited[N];
             4 int map[N][N],path[N],s,num;
             5 void dfs(int v0,int cnt){
             6     int i;
             7     if(cnt==19 && map[v0][s]){
             8         printf("%d:  ",++num);
             9         for(i=0;i<20;i++)
            10             printf("%d ",path[i]);
            11         printf("%d\n",s);
            12         return ;
            13     }
            14     if(cnt>19return;
            15     for(i=1;i<=20;i++)   
            16         if(!visited[i] && map[v0][i]){
            17             path[cnt+1]=i;
            18             visited[i]=1;
            19             dfs(i,cnt+1);
            20             visited[i]=0;     //回溯
            21         }
            22 }
            23 int main(){
            24     int i,v0,v1,v2,v3;
            25     memset(map,0,sizeof(map));
            26     for(i=1;i<=20;i++){
            27         scanf("%d %d %d",&v1,&v2,&v3);
            28         map[i][v1]=map[i][v2]=map[i][v3]=1;
            29         map[v1][i]=map[v2][i]=map[v3][i]=1;
            30     }
            31     while(scanf("%d",&v0),v0){
            32         memset(visited,0,sizeof(visited));
            33         s=v0,num=0,visited[v0]=1,path[0]=v0;
            34         dfs(v0,0);
            35     }
            36     return 0;
            37 }

            posted on 2009-04-20 10:43 極限定律 閱讀(1244) 評論(0)  編輯 收藏 引用 所屬分類: ACM/ICPC

            <2009年4月>
            2930311234
            567891011
            12131415161718
            19202122232425
            262728293012
            3456789

            導航

            統計

            常用鏈接

            留言簿(10)

            隨筆分類

            隨筆檔案

            友情鏈接

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            亚洲人成伊人成综合网久久久| 久久91这里精品国产2020| 精品乱码久久久久久夜夜嗨| 久久99精品国产麻豆宅宅| 久久精品国产99国产电影网| 青青热久久综合网伊人| 久久久久人妻一区二区三区| 久久亚洲中文字幕精品有坂深雪 | 久久久久婷婷| 国产成人无码久久久精品一| 日韩精品无码久久一区二区三| 91视频国产91久久久| 欧洲国产伦久久久久久久| 午夜精品久久久久久中宇| 久久一区二区免费播放| 久久综合欧美成人| 亚洲成av人片不卡无码久久| 久久一日本道色综合久久| 久久夜色精品国产www| 国产精品久久亚洲不卡动漫| 久久久国产视频| 一本久久综合亚洲鲁鲁五月天| 狠狠久久综合伊人不卡| 久久久久成人精品无码中文字幕| 欧美精品乱码99久久蜜桃| 亚洲国产成人精品无码久久久久久综合| 久久99热这里只频精品6| 久久国产成人午夜aⅴ影院| 久久精品九九亚洲精品天堂| 久久天堂AV综合合色蜜桃网| 国产精品久久久久a影院| 久久精品这里只有精99品| 18岁日韩内射颜射午夜久久成人 | 四虎国产精品免费久久久| 亚洲精品无码专区久久久| 综合久久久久久中文字幕亚洲国产国产综合一区首 | 伊人久久大香线蕉无码麻豆| 久久精品国产色蜜蜜麻豆| 亚洲欧美日韩精品久久| 99久久亚洲综合精品成人| 午夜天堂精品久久久久|