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

            A Za, A Za, Fighting...

            堅(jiān)信:勤能補(bǔ)拙

            PKU 2248 Addition Chains

            問(wèn)題:
            http://acm.pku.edu.cn/JudgeOnline/problem?id=2248

            思路:
            第一個(gè)想法是BFS,不過(guò)習(xí)慣性地看discuss,發(fā)現(xiàn)大家用的都是DFS,于是還是用DFS+減枝
            這道題目的關(guān)鍵減枝是: num[depth+1] = num[depth]+num[i], 0<=i<=depth,另外就是從大到小的搜索順序

            另一種解法是迭代加深搜索,第一次使用,貌似就是用DFS實(shí)現(xiàn)BFS,不過(guò)空間需求與時(shí)間需求是兩者的折衷,其模板類似于:
             1 for(deep=11; deep++)
             2 
             3 {
             4 
             5 dfs(0);
             6 
             7 If(find = true)
             8 
             9 break;
            10 
            11 }

            代碼1:
             1 #define MAX_LEN 101
             2 #define INF 0x7FFFFFFF
             3 int num[MAX_LEN];
             4 int ans[MAX_LEN];
             5 int n, min;
             6 
             7 int
             8 dfs(int depth)
             9 {
            10     int i, j;
            11     if(depth+1 >= min)
            12         return;
            13     if(num[depth] == n) {
            14         min = depth+1;
            15         memcpy(ans, num, min*sizeof(int));
            16         return;
            17     }
            18     for(i=depth; i>=0; i--
            19         if(num[i]+num[depth]<=n) {
            20             num[depth+1= num[i] + num[depth];
            21             dfs(depth+1);
            22         }
            23 }
            24 
            25 int
            26 main(int argc, char **argv)
            27 {
            28     int i;
            29     while(scanf("%d"&n)!=EOF && n!=0) {
            30         min = INF;
            31         num[0= 1;
            32         dfs(0);
            33         for(i=0; i<min; i++)
            34             printf("%d ", ans[i]);
            35         printf("\n");
            36     }
            37     return 0;
            38 }

            代碼2:
             1 #define MAX_LEN 101
             2 int num[MAX_LEN];
             3 int n, find, dplimit;
             4 
             5 void
             6 dfs(int depth)
             7 {
             8     int i, j;
             9     if(depth >= dplimit)
            10         return;
            11     if(num[depth] == n) {
            12         if(!find) {
            13             for(j=0; j<=depth; j++)
            14                 printf("%d ", num[j]);
            15             printf("\n");
            16             find = 1;
            17         }
            18         return;
            19     }
            20     for(i=depth; i>=0; i--
            21         if(num[i]+num[depth]<=n) {
            22             num[depth+1= num[i] + num[depth];
            23             dfs(depth+1);
            24         }
            25 }
            26 
            27 int
            28 main(int argc, char **argv)
            29 {
            30     while(scanf("%d"&n)!=EOF && n!=0) {
            31         find = 0;
            32         num[0= 1;
            33         for(dplimit=11; dplimit++) {
            34             dfs(0);
            35             if(find)
            36                 break;
            37         }
            38     }
            39 }

            posted on 2010-08-05 13:49 simplyzhao 閱讀(238) 評(píng)論(0)  編輯 收藏 引用 所屬分類: B_搜索

            導(dǎo)航

            <2010年8月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            2930311234

            統(tǒng)計(jì)

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            搜索

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            久久久精品人妻一区二区三区蜜桃| 久久久国产精品福利免费| 久久久91精品国产一区二区三区| 久久伊人五月丁香狠狠色| 开心久久婷婷综合中文字幕| 久久久国产精华液| 亚洲AV伊人久久青青草原| 久久精品一区二区三区中文字幕| 久久国产成人午夜aⅴ影院| 国产亚州精品女人久久久久久 | 中文精品久久久久国产网址 | 久久精品国产网红主播| 日韩精品久久久肉伦网站| 亚洲∧v久久久无码精品| 午夜天堂av天堂久久久| 国内精品久久久人妻中文字幕| 久久国产精品99精品国产| 韩国三级大全久久网站| 久久久久国产一区二区三区| 一本久道久久综合狠狠躁AV| 婷婷伊人久久大香线蕉AV| 国内精品久久久久| 久久亚洲国产成人影院网站| 一本久久a久久精品vr综合| 久久国产精品-久久精品| 色播久久人人爽人人爽人人片aV| 亚洲综合熟女久久久30p| 精品午夜久久福利大片| 性做久久久久久久久久久| 亚洲av成人无码久久精品| 亚洲国产精久久久久久久| 伊色综合久久之综合久久| 久久国产精品一区二区| 少妇人妻综合久久中文字幕| 国产欧美一区二区久久| 久久亚洲AV无码精品色午夜| 91久久精品91久久性色| 合区精品久久久中文字幕一区| 97久久精品人妻人人搡人人玩| 人妻中文久久久久| 亚洲一本综合久久|