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

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

            導航

            統計

            常用鏈接

            留言簿(10)

            隨筆分類

            隨筆檔案

            友情鏈接

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            久久发布国产伦子伦精品 | 国产精品日韩深夜福利久久 | 国产激情久久久久影院老熟女免费| 国产情侣久久久久aⅴ免费| 97久久精品国产精品青草| 精品久久久久国产免费 | 久久精品国产亚洲av影院| 欧美久久综合性欧美| 日韩久久久久中文字幕人妻| 色8久久人人97超碰香蕉987| 国内精品久久久久久中文字幕 | 伊人久久精品无码av一区| 九九99精品久久久久久| 一极黄色视频久久网站| 美女写真久久影院| 麻豆亚洲AV永久无码精品久久| 国产成人精品综合久久久| 少妇久久久久久久久久| 精品久久777| 久久青青草视频| 久久成人18免费网站| 久久夜色精品国产欧美乱| 亚洲欧美一级久久精品| 国产激情久久久久影院老熟女| 99久久无码一区人妻a黑| 久久精品免费一区二区| 青青草国产97免久久费观看| 99久久亚洲综合精品成人| 久久久精品人妻一区二区三区蜜桃| 亚洲国产精品综合久久网络| 国产精品久久久久9999| 97久久香蕉国产线看观看| 久久夜色精品国产噜噜亚洲AV| 亚洲第一极品精品无码久久 | 精品久久人人做人人爽综合| 99麻豆久久久国产精品免费| 国产精品99久久免费观看| 久久精品国产久精国产思思 | 欧洲精品久久久av无码电影| 亚洲精品乱码久久久久66| 久久久久女人精品毛片|