printf("%c%s",str[i],(i+1)%3==0?"\n":" ");
}
int out(int n)
{
int cal=0;
n=que[n][3];
while(n!=-1)
{
print(que[n][0]); printf("%d\n",que[n][3]);
n=que[n][3];
cal++;
}
cout<<"Total:"<<cal<<endl;
}
int main()
{
perm(0,9);
sort(num+1,num+nums+1);
bfs(now,query(now)); out(ans);
return 0;
}
A*算法
#include<bits/stdc++.h> using
namespace std;
int book_open[400000],book_closed[400000]; int
num[400000];
char tep[11]="012345678";
int nums,flag,ans; int
aim=123804765;
int now=283164705;//初始状态
int corr_dir[10]={4,0,1,2,5,8,7,6,3};// 每个数字应在的位置 int dir[9]
[4]={{-1,-1,3,1},{-1,0,4,2},{-1,1,5,-1},
{0,-1,6,4},{1,3,7,5},{2,4,8,-1},
{3,-1,-1,7},{4,6,-1,8},{5,7,-1,-1}};//代表在 0-8 的位置应该与谁交换,
按逆时针方向排列
struct node{
int level,cost,pre,status,pos;
评论0
最新资源