• <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 極限定律 閱讀(1241) 評論(0)  編輯 收藏 引用 所屬分類: ACM/ICPC

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

            導航

            統計

            常用鏈接

            留言簿(10)

            隨筆分類

            隨筆檔案

            友情鏈接

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            国产免费久久精品99久久| 久久精品国产99国产电影网| 国产真实乱对白精彩久久| 久久精品国产免费| 国产综合成人久久大片91| 中文字幕久久精品| 69久久夜色精品国产69| 婷婷久久综合| 久久国产精品久久精品国产| 亚洲另类欧美综合久久图片区| 狠狠色丁香久久婷婷综合五月| 久久久久无码专区亚洲av| 久久久久久久97| 久久天天躁夜夜躁狠狠躁2022| 国产精品久久久久久福利漫画| 波多野结衣久久| 久久精品国产亚洲一区二区三区| 国产精品免费福利久久| 超级97碰碰碰碰久久久久最新| 久久九九久精品国产免费直播| 99久久777色| 久久久久亚洲av无码专区| 久久久久久久精品成人热色戒| 久久久久人妻精品一区三寸蜜桃| 色综合久久综精品| 99久久无码一区人妻a黑| 国产亚洲美女精品久久久2020| 久久亚洲欧洲国产综合| 一级做a爰片久久毛片人呢| 国内精品久久久久影院优 | 色欲久久久天天天综合网精品| 久久强奷乱码老熟女网站| 国产亚州精品女人久久久久久| 国产精品久久久久久影院 | 精品国产乱码久久久久久人妻| 久久精品成人欧美大片| 国产福利电影一区二区三区久久老子无码午夜伦不| 久久亚洲欧美国产精品| 日本欧美久久久久免费播放网| 日韩乱码人妻无码中文字幕久久| 久久综合狠狠综合久久综合88|