![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 /* 2 ID: shangca2 3 LANG: C++ 4 TASK: msquare 5 */ 6 #include <iostream> 7 #include<cstdio> 8 #include<cstring> 9 #include<algorithm> 10 #include<stdlib.h> 11 #include<queue> 12 #define INF 0xfffffff 13 using namespace std; 14 int o[10]; 15 typedef struct node 16 { 17 int num; 18 int a[10],pre; 19 char c; 20 }st; 21 st q[50000],ss; 22 char s1[10010],s2[10010]; 23 int f[8][8][8][8][8][8][8]; 24 void bfs() 25 { 26 int i,d=1,p=0,minz = INF; 27 q[d].num = 0; 28 q[d].pre = -1; 29 for(i = 1; i <= 8 ; i++) 30 q[d].a[i] = i; 31 f[0][1][2][3][4][5][6] = 1; 32 while(p!=d) 33 { 34 p++; 35 ss = q[p]; 36 if(ss.num>minz) 37 continue; 38 for(i = 1; i <= 8 ; i++) 39 { 40 if(ss.a[i]!=o[i]) 41 break; 42 } 43 if(i==9) 44 { 45 int x = ss.pre,w=0; 46 s2[w++] = ss.c; 47 while(x!=-1) 48 { 49 s2[w++] = q[x].c; 50 x = q[x].pre; 51 } 52 s2[w] = '