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

            學習心得(code)

            superlong@CoreCoder

              C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
              74 Posts :: 0 Stories :: 5 Comments :: 0 Trackbacks

            公告

            文字可能放在http://blog.csdn.net/superlong100,此處存放代碼

            常用鏈接

            留言簿(4)

            我參與的團隊

            搜索

            •  

            最新隨筆

            最新評論

            • 1.?re: Poj 1279
            • 對于一個凹多邊形用叉積計算面積 后能根據結果的正負來判斷給的點集的時針方向?
            • --bsshanghai
            • 2.?re: Poj 3691
            • 你寫的這個get_fail() 好像并是真正的get_fail,也是說fail指向的串并不是當前結點的子串。為什么要這樣弄呢?
            • --acmer1183
            • 3.?re: HDU2295[未登錄]
            • 這個是IDA* 也就是迭代加深@ylfdrib
            • --superlong
            • 4.?re: HDU2295
            • 評論內容較長,點擊標題查看
            • --ylfdrib
            • 5.?re: HOJ 11482
            • 呵呵..把代碼發在這里很不錯..以后我也試試...百度的編輯器太爛了....
            • --csuft1

            閱讀排行榜

            評論排行榜

            Poj上是2286

            #include <stdio.h>
            #include 
            <string.h>

            int map[25], deep;
            char path[101];
            int len; 
            bool flag;
            int f[8][7= {                                               //狀態轉移數組 
                { 13712162123 },
                { 
            24913182224 },
                { 
            111098765 },
                { 
            20191817161514 },
                { 
            24221813942 },
                { 
            23211612731 },
                { 
            14151617181920 },
                { 
            567891011 }
                };

            inline 
            int max(int a, int b)
            {
            return a>b?a:b;}

            void out()                                                       //輸出路徑 
            {
                
            int i;
                
            for(i = 0; i < len; ++ i)
                printf(
            "%c",path[i]);
                puts(
            "");
                printf(
            "%d\n",map[7]);
            }

            inline 
            int cal()                                                 //A* 
            {
                
            int num[4= {0000};
                num[map[
            7]] ++;   num[map[8]] ++;  num[map[9]] ++;
                num[map[
            12]] ++;  num[map[13]] ++;
                num[map[
            16]] ++;   num[map[17]] ++;  num[map[18]] ++;
                
            return 8 - max(max(num[1], num[2]), num[3]);
            }

            inline 
            bool ok()                                                 //判斷是否達到目標態 
            {
                
            int x = map[7], i;
                
            if(map[8]^| map[9]^| map[12]^| map[13]^|
                   map[
            16]^| map[17]^| map[18]^x)
                     
            return false;
                
            return true;
            }

            int astar;

            void dfs(int dep)                                                //IDA*
            {
                
            int temp[25], J;
                
            if(dep == deep) 
                {
                    
            if(ok()) flag = true;
                    
            return ;
                }
                
            for(int i = 0; i < 8++ i)
                {
                    
            for(J = 1; J < 25++ J)temp[J] = map[J];
                                                                             
            //狀態轉移 
                    for(J = 0; J < 6++ J)
                        map[f[i][J]] 
            = temp[f[i][J + 1]];
                    map[f[i][
            6]] = temp[f[i][0]];

                    astar 
            = cal();
                    
            if(deep > dep + astar)
                    {
                        path[len 
            ++= i + 'A';
                        dfs(dep 
            + 1);
                        
            if(flag)return;
                        len 
            --;
                    }
                    
            for(J = 1; J < 25++ J)map[J] = temp[J];
                }
            }

            int main()
            {
                
            while(scanf("%d"&map[1]), map[1])
                {
                    
            for(int i = 2; i < 25++ i) scanf("%d"&map[i]);
                    
            if(ok())
                    {
                        printf(
            "No moves needed\n%d\n", map[7]);
                        
            continue;
                    }
                    len 
            = 0; deep = 1;
                    flag 
            = false;
                    
            while(!flag) 
                    {
                        dfs(
            0);
                        deep 
            ++;
                    }
                    
            out();
                }
            }

            posted on 2009-09-03 01:21 superlong 閱讀(211) 評論(0)  編輯 收藏 引用
            99久久精品国产免看国产一区| 久久精品国产亚洲5555| 亚洲色大成网站www久久九| 久久精品人人做人人爽97| 伊人丁香狠狠色综合久久| 色综合久久久久综合99| 久久青青草原亚洲av无码app | 国产精品九九久久免费视频 | 青青青青久久精品国产h| 久久国产精品波多野结衣AV| 中文国产成人精品久久不卡 | 久久久精品国产Sm最大网站| 99久久无色码中文字幕人妻| 99久久精品免费看国产| 久久精品成人欧美大片| 国产AV影片久久久久久| 久久久久亚洲AV成人片| 午夜精品久久久久成人| 四虎国产精品免费久久5151| 久久久午夜精品福利内容| 国产精品无码久久综合网| 久久久久高潮毛片免费全部播放| 色综合久久久久综合99| 久久男人中文字幕资源站| 久久免费精品视频| 国内精品人妻无码久久久影院| 无码八A片人妻少妇久久| 亚洲?V乱码久久精品蜜桃 | 久久99国产乱子伦精品免费| 婷婷国产天堂久久综合五月| 国内精品久久久久久久coent| 久久国产精品久久精品国产| 久久夜色精品国产噜噜噜亚洲AV | 久久国产午夜精品一区二区三区| 久久久久亚洲精品无码蜜桃| 亚洲狠狠婷婷综合久久久久| 思思久久99热只有频精品66| 久久久久综合国产欧美一区二区| 精品久久久久久无码国产| 久久99精品久久久久久不卡| 久久人妻少妇嫩草AV无码蜜桃|