青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

The Fourth Dimension Space

枯葉北風寒,忽然年以殘,念往昔,語默心酸。二十光陰無一物,韶光賤,寐難安; 不畏形影單,道途阻且慢,哪曲折,如渡飛湍。斬浪劈波酬壯志,同把酒,共言歡! -如夢令

POJ 1077 八數碼問題

瞻仰下八數碼,可惜效率還不行啊,看到那么多0MS的,打擊啊。。。這題如果要0MS,必須是A*吧,呵呵 可惜還不會呀。。。

#include<iostream>
#include
<algorithm>
#include
<cstring>
using namespace std;

struct node
{
    
int dir;
    
int pre;
    
int step;
    
char x[10];
}
l[400000];


char x[15];
char ansx[15]="123456780";
int perm[] = {1,1,2,6,24,120,720,5040,40320};//n! 
int d[] = {-1,-313};//四個方向的下標變換,左上右下。
bool move[][4= {0,0,1,11,0,1,11,0,0,10,1,1,11,1,1,11,1,0,10,1,1,01,1,1,01,1,0,0}
//各個位置的可行變換
int v[362881];//數組判重
int hash()//用逆序數和變進制進行hash 

    
int h = 0
    
for(int i = 1;i<9;i++)
    

        
int count = 0
        
for(int j=0;j<i;j++
            
if(x[j] > x[i])count ++
        h 
+= count * perm[i]; 
    }
 
    
return h; 
}
 

void input()
{

    
char t[5];
    
for(int i=0;i<9;i++)
    
{
        scanf(
"%s",t);
        x[i]
=t[0];
        
if(x[i]=='x')
            x[i]
='0';
    }

}



int pos;
void search(char x[])
{
    
for(int i=0;i<9;i++)
        
if(x[i]=='0')
        
{
            pos
=i;
            
break;
        }


}

char ans[4000000]={0};
void GetDir(int h)
{
    memset(ans,
0,sizeof(ans));
    
int i;
    
int n=l[h].step;
    
for(i=n;i>=1;i--)
    
{
        
        
if(l[h].dir==0)
            ans[i]
='l';
        
else if(l[h].dir==1)
            ans[i]
='u';
        
else if(l[h].dir==2)
            ans[i]
='r';
        
else if(l[h].dir==3)
            ans[i]
='d';
        h
=l[h].pre;
    }

}




int main()
{
    

    
int head,tail;
    memset(v,
0,sizeof(int)*362881);
    head
=tail=1;
    input();
    
//
    int code=hash();
    v[code]
=1;
    l[head].step
=0;
    l[head].pre
=-1;
    strcpy(l[head].x,x);
    
//initial

    
while(head<=tail)
    
{
        
if(strcmp(l[head].x,ansx)==0)
            
break;//此時head為所求解
        search(l[head].x);
        
for(int i=0;i<4;i++)
        
{
            
if(move[pos][i]==0)
                
continue;
            strcpy(x,l[head].x);
            
int np=pos+d[i];
            swap(x[pos],x[np]);
            
int code=hash();
            
if(!v[code])
            
{
                
                tail
++;
                v[code]
=1;
                l[tail].step
=l[head].step+1;
                l[tail].pre
=head;
                l[tail].dir
=i;
                strcpy(l[tail].x,x);
            }


        }

        head
++;
    }

    
if(head>tail)
        printf(
"unsolvable\n");
    
else
    
{
        GetDir(head);
        printf(
"%s\n",ans+1);
    }



    
return 0;
}



另外那個十五數碼,能用程序搞出來么?

這里的哈希函數是用能對許多全排列問題適用的方法。取n!為基數,狀態第n位的逆序值為哈希值第n位數。對于空格,取其(9-位置)再乘以8!。例如,1 3 7 2 4 6 8 5 8 的哈希值等于:
0*0! + 0*1! + 0*2! + 2*3! + 1*4! + 1*5! + 0*6! + 3*7! + (9-8)*8! = 55596 <9!
 具體的原因可以去查查一些數學書,其中1 2 3 4 5 6 7 8 9 的哈希值是0 最小,8 7 6 5 4 3 2 1 0 的哈希值是(9!-1)最大,而其他值都在0 到 (9!-1) 中,且均唯一。

posted on 2010-05-03 19:26 abilitytao 閱讀(1828) 評論(6)  編輯 收藏 引用

評論

# re: POJ 1077 八數碼問題 2010-05-03 21:37 abilitytao

@TimTopCoder
thx, maybe I have to learn the A* algorithm for a deep research..  回復  更多評論   

# re: POJ 1077 八數碼問題 2010-05-03 22:08 aaa

八數碼問題這樣搞,
這個算法也太傻了吧。  回復  更多評論   

# re: POJ 1077 八數碼問題 2010-05-03 23:46 abilitytao

@aaa
非常SB!呵呵  回復  更多評論   

# re: POJ 1077 八數碼問題 2010-05-04 11:32 麗可酷

八數碼問題這樣搞  回復  更多評論   

# re: POJ 1077 八數碼問題 2010-07-28 14:17 knight4hy

看了半天發現是非常簡單的廣搜,可我是搜A*進來的  回復  更多評論   

# re: POJ 1077 八數碼問題[未登錄] 2010-07-28 22:23 abilitytao

@knight4hy
那你可以繼續搜 直到搜到我寫A*的那篇。。。  回復  更多評論   


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久精品国产欧美亚洲人人爽| 久久阴道视频| 国产香蕉97碰碰久久人人| 国产精品久久久久久久久借妻| 欧美无砖砖区免费| 国产精品久久久久国产精品日日| 国产精品久久久久久影院8一贰佰| 欧美日韩一区在线| 国产精品美女久久久久久免费| 国产日本欧洲亚洲| 影音先锋中文字幕一区| 亚洲破处大片| 亚洲午夜视频| 久久久久久九九九九| 欧美二区视频| 欧美日韩亚洲综合| 欧美日韩一区二区三区在线视频| 老**午夜毛片一区二区三区| 欧美伦理91i| 国产日韩久久| 99精品国产在热久久下载| 午夜久久福利| 欧美成人dvd在线视频| 亚洲欧美色婷婷| 美女精品在线| 国产精品美女主播| 亚洲精品免费网站| 久久成人一区| 亚洲狼人综合| 久久精品免费电影| 欧美色欧美亚洲高清在线视频| 国产午夜精品理论片a级大结局| 亚洲国产一区二区视频| 欧美亚洲综合网| 最新国产乱人伦偷精品免费网站| 一区二区三区回区在观看免费视频| 久久精品一级爱片| 国产精品网红福利| 99视频日韩| 免费中文日韩| 欧美在线综合| 国产欧美日韩视频在线观看| 日韩午夜中文字幕| 欧美成人免费大片| 久久福利视频导航| 国产免费亚洲高清| 亚洲午夜在线观看| 亚洲激情视频网站| 老司机免费视频一区二区三区| 国产日韩欧美综合精品| 亚洲欧美日韩一区二区| 日韩视频在线观看一区二区| 欧美wwwwww| 亚洲国内欧美| 欧美激情亚洲| 免费久久99精品国产自| 在线观看久久av| 久久视频这里只有精品| 欧美在线91| 一区二区三区自拍| 久久在线免费观看视频| 久久成人免费| 伊人成年综合电影网| 久久这里有精品视频| 久久九九国产精品| 在线精品观看| 欧美电影资源| 欧美精品在线网站| 国产精品99久久久久久人| 亚洲精品永久免费精品| 欧美天堂亚洲电影院在线播放| 亚洲午夜精品久久久久久浪潮 | 亚洲国产成人久久综合| 亚洲国产高清高潮精品美女| 国产专区欧美专区| 久久亚洲春色中文字幕| 久久免费高清视频| 亚洲免费成人av电影| 99精品国产高清一区二区| 国产精品豆花视频| 久久九九免费| 欧美高清不卡在线| 亚洲永久精品国产| 欧美一区国产二区| 亚洲国产婷婷香蕉久久久久久99| 亚洲国产精品va在线观看黑人| 欧美人与性动交cc0o| 欧美一级成年大片在线观看| 久久精品视频在线看| 亚洲免费观看高清完整版在线观看熊| 亚洲人成人77777线观看| 国产精品va在线播放| 久久久青草婷婷精品综合日韩| 欧美成人tv| 久久国产精品久久国产精品| 久热re这里精品视频在线6| 日韩一级成人av| 欧美一区二区高清| 一区二区欧美亚洲| 久久精品国产v日韩v亚洲| 一本一本久久| 久热精品视频| 久久精品一区四区| 国产精品xvideos88| 欧美国产视频在线观看| 国产农村妇女精品一二区| 亚洲三级视频| 在线国产精品播放| 午夜精品久久久久久久久久久久久 | 欧美精品成人| 久久久亚洲精品一区二区三区 | 久久综合999| 欧美一二三区精品| 欧美日本不卡高清| 欧美国产激情| 一区二区在线不卡| 西西人体一区二区| 亚洲自拍电影| 欧美三级在线播放| 亚洲国产成人精品视频| 精品av久久久久电影| 性伦欧美刺激片在线观看| 亚洲一区精品电影| 欧美日韩中文精品| 一本色道久久88综合日韩精品| 亚洲毛片av| 欧美破处大片在线视频| 91久久国产综合久久| 亚洲国产精品久久久久婷婷老年 | 毛片基地黄久久久久久天堂| 欧美一区综合| 国产精品制服诱惑| 亚洲欧美美女| 欧美一区日韩一区| 国产欧美日韩亚洲精品| 亚洲一区二区在线视频 | 日韩视频在线观看| av成人手机在线| 欧美精品一区在线发布| 亚洲激情一区二区三区| 亚洲精品一区二区三区不| 欧美gay视频激情| 亚洲国产成人久久综合一区| 亚洲美女在线一区| 欧美特黄一级大片| 亚洲综合色婷婷| 久久久一二三| 亚洲精品乱码久久久久久黑人 | 欧美在线网站| 久久综合色8888| 亚洲激情电影中文字幕| 欧美日本三区| 亚洲欧美国产77777| 久久资源在线| 99re这里只有精品6| 国产精品国产三级国产aⅴ浪潮| 亚洲欧美日韩精品久久久久| 麻豆亚洲精品| 一区二区精品在线| 国产精品自拍视频| 美女主播一区| 在线综合亚洲欧美在线视频| 先锋影音国产精品| 1024成人| 国产精品久久久久久久久久尿| 欧美影院在线播放| 亚洲精品麻豆| 久久久久成人精品免费播放动漫| 在线观看国产精品网站| 欧美日韩国内| 欧美资源在线| 日韩一区二区精品视频| 久久婷婷综合激情| 亚洲一区二区三区高清| 国产专区综合网| 欧美日韩日本国产亚洲在线| 久久激情视频免费观看| 亚洲美女啪啪| 欧美成人性生活| 欧美一区亚洲一区| 日韩午夜av| 樱花yy私人影院亚洲| 欧美日本不卡视频| 久久久久久久久久久久久9999| 亚洲欧洲一区二区天堂久久 | 快播亚洲色图| 亚洲综合不卡| 日韩亚洲欧美在线观看| 在线成人中文字幕| 国产精品午夜视频| 欧美日本二区| 蜜桃伊人久久| 久久久国产亚洲精品| 欧美在线日韩精品| 国产在线视频欧美一区二区三区| 欧美日本中文| 欧美99久久| 久久视频精品在线| 久久av资源网站| 午夜精品久久久久久久|