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

posts - 7, comments - 13, trackbacks - 0, articles - 37
   :: 首頁 :: 新隨筆 :: 聯(lián)系 ::  :: 管理

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

const int hashsize=70001;
const int maxnode=50000;
const int maxp=40;
const int ten[]={1,10,100,1000,10000,100000,1000000,10000000,100000000};
const int C[]={2,3,2,3,4,3,2,3,2};
const int EP[][4]={{1,3,0,0},{0,2,4,0},{1,5,0,0},{0,4,6,0},{1,3,5,7},{2,4,8,0},{3,7,0,0},{4,6,8,0},{5,7,0,0}};

struct Tlist
{
 int data,d;
 Tlist *next;
};
struct Thashpoint
{
 int data;
 Thashpoint *next;
};
//Memory
int ID;
Tlist listM[maxnode],*q;
Thashpoint hashM[maxnode],*p;
//data
int src,dest;
//heap
Tlist *head[maxp],*expand[maxp],*lp1,*lp2;
//Hash
Thashpoint *hash[hashsize];
//expand
int nowp,A[9],arcT[9],dist[9][9],b,depth,swap[9][9];
int data,G,newdata,newG;
bool find_answer;

void readdata(const char *filename,int &data)
{
 int i,v;
 FILE *f=fopen(filename,"r");
 data=0;
 for (i=0;i<9;i++)
 {
  fscanf(f,"%d",&v);
  data=data+v*ten[i];
 }
 fclose(f);
}
bool check_noanswer()
{
 int p[9],i,b1,b2;
 bool vis[9];
 for (i=0;i<9;i++)
  p[i]=arcT[src/ten[i]%10];
 for (b1=0; src/ten[b1]%10!=0;b1++);
 for (b2=0;dest/ten[b2]%10!=0;b2++);
 int countP=0;
 memset(vis,false,sizeof(vis));
 for (i=0;i<9;i++)
  if (!vis[i])
  {
   countP++;
   for (int k=i;!vis[k];k=p[k])
    vis[k]=true;
  }
 return (countP-dist[b1][b2])%2==0;
}
void preprocess()
{
 ID=0;
 find_answer=false;
 memset(hash,0,sizeof(hash));
 memset(head,0,sizeof(head));
 memset(expand,0,sizeof(expand));
 for (int k=0;k<9;k++)
  arcT[dest/ten[k]%10]=k;
 for (int u=0;u<9;u++)
  for (int v=0;v<9;v++)
  {
   dist[u][v]=abs(u/3-v/3)+abs(u%3-v%3);
   swap[u][v]=ten[u]-ten[v];
  }
}
void addnode()
{
 if (newdata==dest)
 {
  printf("%d\n",depth);
  find_answer=true;
  return;
 }
 int address=newdata%hashsize;
 for (p=hash[address];p!=NULL;p=p->next)
  if (p->data==newdata)
   return;
 if (ID==maxnode)
  return;
 p=&hashM[ID];
 p->data=newdata;
 p->next=hash[address];
 hash[address]=p;
 q=&listM[ID];
 ID++;
 q->data=newdata;
 q->d=depth;
 if (newG>=maxp)
  return;
 if (newG==nowp)
 {
  q->next=expand[depth];
  expand[depth]=q;
 }
 else
 {
  q->next=head[newG];
  head[newG]=q;
 }
}
void solve()
{
 nowp=-1;
 newdata=src;
 newG=0;
 for (int k=0;k<9;k++)
  if (src/ten[k]%10!=0)
   newG+=dist[arcT[src/ten[k]%10]][k];
 depth=0;
 addnode();
 if (find_answer)
  return;
 for (int p=0;p<maxp;p++) if (head[p]!=NULL)
 {
  nowp=p;
  for (lp1=head[p];lp1!=NULL;lp1=lp2)
  {
   lp2=lp1->next;
   lp1->next=expand[lp1->d];
   expand[lp1->d]=lp1;
  }
  for (int d=0;d<=p;d++)
   for (;expand[d]!=NULL;)
   {
    data=expand[d]->data;
    G=p-expand[d]->d;
    depth=expand[d]->d+1;
    expand[d]->d=-2;
    expand[d]=expand[d]->next;
    for (b=0;data/ten[b]%10!=0;b++);
    for (int v=0;v<C[b];v++)
    {
     int u=EP[b][v];
     int c=data/ten[u]%10;
     newdata=data+swap[b][u]*c;
     c=arcT[c];
     newG=depth+G-dist[c][u]+dist[c][b];
     addnode();
     if (find_answer)
      return;
    }
   }
 }
 printf("-1\n");
}
int main()
{
 readdata("start.txt",src);
 readdata("goal.txt",dest);
 preprocess();
 if (check_noanswer())
  printf("-1\n");
 else
  solve();
 return 0;
}

 


只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   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>
            午夜在线视频一区二区区别 | 一区二区av在线| 亚洲第一在线综合网站| 亚洲视频电影图片偷拍一区| 国产精一区二区三区| 欧美视频一区二区| 亚洲乱码精品一二三四区日韩在线| 亚洲另类自拍| 99re8这里有精品热视频免费| 黑丝一区二区三区| 伊人狠狠色j香婷婷综合| 欧美一区二区三区视频在线观看 | 久久婷婷丁香| 一区二区高清视频| 亚洲欧美另类中文字幕| 亚洲视频一区二区免费在线观看| 国产一区成人| 国产日韩视频| 国产一区二区按摩在线观看| 好看的亚洲午夜视频在线| 国产婷婷色综合av蜜臀av| 国产亚洲激情在线| 国产亚洲免费的视频看| 国产拍揄自揄精品视频麻豆| 狠狠网亚洲精品| 1024欧美极品| 国产综合在线视频| 一区免费观看视频| 国产日韩视频一区二区三区| 国产在线精品成人一区二区三区| 欧美日韩国产亚洲一区| 国产日本欧美一区二区| 国内精品久久久久久久果冻传媒| 亚洲视频一区二区免费在线观看| 欧美成人黑人xx视频免费观看| 久色婷婷小香蕉久久| 亚洲高清毛片| 日韩视频在线观看免费| 欧美激情亚洲| 99国产一区| 欧美一区三区三区高中清蜜桃| 欧美精品一区二区三区视频| 国产精品激情| 午夜天堂精品久久久久| 老色鬼精品视频在线观看播放| 欧美激情麻豆| 精品成人a区在线观看| 亚洲欧洲精品成人久久奇米网| 亚洲乱码精品一二三四区日韩在线| 午夜精品久久久久久久久久久久久| 欧美一区网站| 亚洲国产精品一区| 亚洲精品一区二区三区樱花| 99热精品在线观看| 亚欧成人在线| 国产精品高潮呻吟久久av黑人| 激情六月婷婷久久| 亚洲专区欧美专区| 99热免费精品| 久久gogo国模裸体人体| 日韩午夜免费视频| 久久精品国产亚洲一区二区| 欧美日韩成人激情| 国产一区二区久久精品| 999在线观看精品免费不卡网站| 欧美影院午夜播放| 亚洲网站在线播放| 久久久国产午夜精品| 欧美日韩精品三区| 一本色道久久加勒比88综合| 久久久综合免费视频| 午夜视频在线观看一区二区| 欧美日韩第一区日日骚| 国产一区二区三区日韩欧美| 久久精品亚洲一区二区三区浴池| 亚洲精品久久久久久久久久久久| 欧美电影资源| 尹人成人综合网| 欧美一区二区视频观看视频| 亚洲欧美久久| 国产精品久久777777毛茸茸| 亚洲伦理久久| 亚洲日本成人| 免费一级欧美片在线观看| 亚洲激情视频在线播放| 老牛国产精品一区的观看方式| 久久视频一区| 亚洲成人影音| 久热精品在线| 欧美美女bbbb| 国产精品99久久久久久久vr| 亚洲网友自拍| 国产日韩在线看片| 国产精品久99| 久久久久久一区| 欧美自拍丝袜亚洲| 最新69国产成人精品视频免费| 男女视频一区二区| 欧美日韩的一区二区| 一区二区国产精品| 亚洲巨乳在线| 国产亚洲欧美日韩一区二区| 欧美在线观看一区| 免费中文日韩| 夜夜爽99久久国产综合精品女不卡| 亚洲一区二区三区色| 国产精品一区二区黑丝| 久久不射电影网| 蜜臀av国产精品久久久久| 亚洲欧洲午夜| 亚洲免费在线视频| 亚洲精品视频在线| 夜夜精品视频| 亚洲伊人一本大道中文字幕| 国产午夜精品全部视频在线播放| 一本久道久久综合狠狠爱| 亚洲视频一区二区| 国产亚洲观看| 亚洲国产视频a| 国产精品久久久久久妇女6080| 亚洲免费视频网站| 欧美一级日韩一级| 亚洲毛片一区| 欧美成人综合一区| 欧美在线二区| 91久久极品少妇xxxxⅹ软件| 久久看片网站| 中文在线资源观看网站视频免费不卡 | 女同一区二区| 欧美日韩免费看| 99视频日韩| 久久久欧美精品| 亚洲一区二区久久| 欧美v日韩v国产v| 亚洲欧美日韩在线一区| 欧美日韩精品高清| 久久青草欧美一区二区三区| 国产精品久久久久久久久免费| 久久国产欧美日韩精品| 欧美日韩在线观看一区二区三区| 久久久免费精品视频| 欧美激情精品久久久久久变态| 亚洲欧美中文在线视频| 免费日韩成人| 精品成人久久| 免费日韩av电影| 欧美日韩精品一本二本三本| 99xxxx成人网| 久久爱www.| 亚洲尤物在线视频观看| 免费观看久久久4p| 性欧美办公室18xxxxhd| 欧美影院成人| 亚洲尤物在线| 欧美日韩欧美一区二区| 在线欧美电影| 美女性感视频久久久| 国产精品免费久久久久久| 亚洲日本激情| 99国产精品久久久| 欧美丰满高潮xxxx喷水动漫| 久久亚洲色图| 狠狠色噜噜狠狠色综合久| 一区二区高清在线| 欧美亚洲成人精品| 国产精品99久久久久久白浆小说| 欧美激情欧美狂野欧美精品 | 欧美视频在线播放| 六月婷婷久久| 国产一区视频在线观看免费| 亚洲一级二级| 一区二区三区国产精品| 久久在线视频在线| 久久影视三级福利片| 国产精品99久久久久久有的能看| 国产精品久久福利| 亚洲综合激情| 国产精品成人v| 亚洲线精品一区二区三区八戒| 亚洲调教视频在线观看| 国产精品激情av在线播放| 亚洲视频精选在线| 在线观看精品| 欧美高清视频免费观看| 国产精品美女一区二区| 性欧美大战久久久久久久久| 久久综合伊人77777| 亚洲经典视频在线观看| 久久久久久黄| 亚洲国产天堂久久综合网| 1024精品一区二区三区| 亚洲一区二区视频| 国产精品欧美一区喷水| 久久精品视频播放| 狠狠综合久久| 欧美日韩国产欧| 久久国产精品毛片| 欧美gay视频激情| 日韩午夜在线播放| 国产精品自在线|