• <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年4月>
            2930311234
            567891011
            12131415161718
            19202122232425
            262728293012
            3456789

            導航

            統計

            常用鏈接

            留言簿(10)

            隨筆分類

            隨筆檔案

            友情鏈接

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            无码日韩人妻精品久久蜜桃| 久久香蕉国产线看观看精品yw| 久久香蕉超碰97国产精品| 伊人 久久 精品| 婷婷久久综合九色综合绿巨人| 久久电影网| 亚洲国产成人精品女人久久久| 91久久香蕉国产熟女线看| 久久最近最新中文字幕大全| 久久综合久久综合久久| 精品水蜜桃久久久久久久| 久久久久一本毛久久久| 亚洲&#228;v永久无码精品天堂久久 | 蜜臀av性久久久久蜜臀aⅴ麻豆| 亚洲成色www久久网站夜月| 性色欲网站人妻丰满中文久久不卡| 亚洲综合熟女久久久30p| 人人狠狠综合久久88成人| 久久91精品国产91久久麻豆| 日韩精品国产自在久久现线拍 | 中文字幕一区二区三区久久网站| 亚洲成人精品久久| 色偷偷91久久综合噜噜噜噜| 99久久精品免费看国产一区二区三区| 日韩精品久久无码人妻中文字幕| 久久精品国产亚洲麻豆| 亚洲欧美国产精品专区久久| 久久精品国产久精国产思思| 精品无码久久久久久久久久| 亚洲午夜久久久影院伊人| 97久久久精品综合88久久| 欧美精品丝袜久久久中文字幕 | 三级韩国一区久久二区综合| 亚洲乱码中文字幕久久孕妇黑人| 久久精品国产一区| 一本久道久久综合狠狠爱| 国产精品亚洲美女久久久| 亚洲va久久久噜噜噜久久天堂| 青青青青久久精品国产 | 亚洲国产欧美国产综合久久| 久久中文字幕无码专区 |