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

            <2009年6月>
            31123456
            78910111213
            14151617181920
            21222324252627
            2829301234
            567891011

            導航

            統計

            常用鏈接

            留言簿(10)

            隨筆分類

            隨筆檔案

            友情鏈接

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            成人国内精品久久久久影院| 久久e热在这里只有国产中文精品99 | 人妻无码αv中文字幕久久| 欧美精品一区二区精品久久| 国产欧美久久久精品| 日本精品久久久中文字幕| 亚洲午夜精品久久久久久人妖| 亚洲狠狠久久综合一区77777 | 日韩十八禁一区二区久久| 韩国无遮挡三级久久| 亚洲综合伊人久久大杳蕉| 97久久超碰国产精品旧版| 亚洲国产精品人久久| 国产综合久久久久| 久久国产香蕉视频| 久久久久久噜噜精品免费直播| 精品一区二区久久| 久久久久国产视频电影| 久久一日本道色综合久久| 欧美亚洲国产精品久久蜜芽| 久久精品国产第一区二区| 三级三级久久三级久久| 嫩草影院久久99| 综合网日日天干夜夜久久 | 人妻无码久久一区二区三区免费| 国产成人久久精品麻豆一区| 精品国产乱码久久久久软件| 久久久久久亚洲精品影院| 久久天天躁狠狠躁夜夜96流白浆 | 欧美成a人片免费看久久| 国内精品久久久久久久涩爱| 91久久精品国产免费直播| 国产韩国精品一区二区三区久久 | 亚洲欧美日韩久久精品| 欧美久久一区二区三区| 一级女性全黄久久生活片免费| 久久久久亚洲AV综合波多野结衣 | 香蕉久久夜色精品升级完成| 色妞色综合久久夜夜| 久久精品无码专区免费青青| 97精品国产97久久久久久免费|