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

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

#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;
}

 

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲调教视频在线观看| 亚洲男人的天堂在线| 日韩一级在线观看| 亚洲高清网站| 亚洲激情专区| 亚洲看片免费| 夜夜嗨一区二区三区| 亚洲一区二区在| 香蕉久久夜色精品国产| 久久久亚洲国产美女国产盗摄| 欧美一区二区三区播放老司机| 久久国产免费看| 欧美大片免费观看| 91久久在线观看| 亚洲人成亚洲人成在线观看| 亚洲剧情一区二区| 午夜视频一区在线观看| 亚洲综合色丁香婷婷六月图片| 欧美视频在线观看免费| 欧美三区在线| 精品电影一区| 亚洲午夜电影| 麻豆精品在线播放| 正在播放亚洲一区| 久久福利影视| 欧美日韩午夜| 在线播放国产一区中文字幕剧情欧美| 亚洲精品影视| 久久国产精品一区二区| 亚洲欧洲精品一区二区三区不卡| 亚洲一区在线视频| 欧美 日韩 国产精品免费观看| 国产精品扒开腿爽爽爽视频 | 国产一区二区三区丝袜| 亚洲欧洲在线一区| 欧美在线看片a免费观看| 亚洲成人在线网| 小黄鸭视频精品导航| 欧美激情精品久久久久| 国精产品99永久一区一区| 亚洲视频一二区| 欧美激情一区二区三区四区| 欧美一级在线视频| 国产精品久久网| 一本久道久久综合中文字幕| 免费观看亚洲视频大全| 欧美在线影院| 国产欧美一区二区精品性| 在线亚洲精品福利网址导航| 欧美激情 亚洲a∨综合| 久久色中文字幕| 一区在线观看| 免费观看在线综合| 久久婷婷久久| 亚洲电影毛片| 欧美v日韩v国产v| 久久久久国产精品厨房| 国产一区二区黄| 久久久91精品| 久久久www成人免费精品| 在线成人小视频| 欧美xxxx在线观看| 欧美顶级艳妇交换群宴| 夜夜嗨av一区二区三区中文字幕| 亚洲激情欧美| 欧美日韩一区二| 一区二区三区高清在线观看| 91久久精品国产91久久性色| 欧美大片免费看| 一区二区三区精品久久久| 亚洲美女av在线播放| 欧美日韩在线看| 亚洲自拍另类| 亚洲一区二区三区精品在线观看| 夜夜夜久久久| 91久久精品久久国产性色也91| 免费日韩一区二区| 日韩一级大片| 亚洲午夜视频| 激情欧美一区二区三区| 亚洲成人在线视频网站| 欧美日韩卡一卡二| 午夜国产精品视频| 久久精品二区三区| 日韩视频精品在线| 亚洲一区二区在线视频| 激情欧美丁香| 亚洲免费电影在线| 国产一区清纯| 日韩午夜av| 韩国女主播一区| 最新国产成人av网站网址麻豆| 国产精品久久二区二区| 久久综合色婷婷| 欧美理论电影在线观看| 欧美中文字幕| 欧美精品亚洲精品| 欧美一区二区在线播放| 欧美~级网站不卡| 午夜精品剧场| 欧美成人激情视频免费观看| 亚洲一区二区三区乱码aⅴ蜜桃女| 欧美一级片一区| 99精品99| 久久夜色精品一区| 亚洲欧美中文日韩v在线观看| 久久久久久亚洲精品不卡4k岛国| avtt综合网| 久久久久久69| 午夜精品久久久久久久久久久| 裸体丰满少妇做受久久99精品| 午夜国产精品影院在线观看| 欧美国产精品专区| 麻豆精品传媒视频| 国产一区再线| 亚洲深夜福利网站| 日韩一本二本av| 久久蜜桃资源一区二区老牛| 亚洲欧美日韩一区二区| 欧美伦理一区二区| 欧美激情乱人伦| 在线观看日韩av| 久久国产手机看片| 欧美亚洲免费电影| 欧美性一二三区| 99国产精品久久久久老师| 亚洲三级免费电影| 麻豆国产精品777777在线| 久久久噜噜噜久久中文字免| 国产乱码精品一区二区三区忘忧草| 亚洲伦理在线| 99国产精品久久久久久久成人热| 久久精品综合网| 久久综合激情| 在线不卡视频| 久久久久久夜| 亚洲电影观看| 99视频精品全部免费在线| 欧美韩国一区| 在线免费观看视频一区| 久久亚洲免费| 激情六月婷婷久久| 久久午夜精品一区二区| 久久婷婷蜜乳一本欲蜜臀| 韩国av一区| 麻豆成人综合网| 亚洲国产综合在线看不卡| 亚洲日本一区二区三区| 欧美精品v日韩精品v韩国精品v| 亚洲电影成人| 亚洲一区二区三区精品在线观看| 欧美午夜无遮挡| 亚洲欧美日韩一区二区三区在线| 久久精品视频在线观看| 在线观看精品视频| 欧美精品在线播放| 亚洲视频在线观看| 久久久美女艺术照精彩视频福利播放| 国语精品中文字幕| 欧美好骚综合网| 一区二区三区欧美视频| 久久精品国产一区二区三区| 亚洲第一福利社区| 欧美日韩精品免费观看视频| 亚洲欧美日韩精品一区二区 | 欧美黄色影院| aa级大片欧美三级| 欧美一区二区三区日韩| 精品二区久久| 欧美日韩亚洲网| 性感少妇一区| 亚洲日本一区二区| 性做久久久久久免费观看欧美 | 在线观看91精品国产麻豆| 欧美国产日韩在线| 午夜精品在线看| 亚洲风情亚aⅴ在线发布| 亚洲欧美日韩天堂一区二区| 亚洲国产精品一区二区第一页| 欧美午夜精品电影| 久久久五月婷婷| 亚洲一区二区三区免费观看| 欧美成人小视频| 亚洲欧美日韩另类精品一区二区三区| 国产一区二区三区精品欧美日韩一区二区三区| 久久先锋影音| 先锋影音国产一区| 亚洲精品久久7777| 欧美+亚洲+精品+三区| 久久成人18免费网站| 亚洲美女在线国产| 在线看日韩av| 国产日韩亚洲| 国产精品国产三级国产| 欧美好吊妞视频| 欧美成人一区二区| 久久综合成人精品亚洲另类欧美| 亚洲欧美国产毛片在线| 99精品欧美一区| 亚洲精品在线视频观看|