标签:des style blog http color io os java ar
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 243 Accepted Submission(s): 135
1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 #include <iostream> 5 #include <queue> 6 using namespace std; 7 8 struct node{ 9 int a[7], d; 10 }; 11 12 int visited[700000]; 13 14 int bfs(int x[],int y[]){ 15 queue<node>Q; 16 node p, q; 17 int num=0; 18 p.a[1]=x[1];p.a[2]=x[2];p.a[3]=x[3];p.a[4]=x[4];p.a[5]=x[5];p.a[6]=x[6];p.d=0; 19 visited[x[1]*100000+x[2]*10000+x[3]*1000+x[4]*100+x[5]*10+x[6]]=1; 20 Q.push(p); 21 while(!Q.empty()){ 22 p=Q.front(); 23 Q.pop(); 24 int f=1; 25 for(int i=1;i<=6;i++){ 26 if(p.a[i]!=y[i]){ 27 f=0;break; 28 } 29 } 30 if(f) return p.d; 31 //向左 32 q.a[1]=p.a[4];q.a[2]=p.a[3];q.a[3]=p.a[1];q.a[4]=p.a[2];q.a[5]=p.a[5];q.a[6]=p.a[6]; 33 if(!visited[q.a[1]*100000+q.a[2]*10000+q.a[3]*1000+q.a[4]*100+q.a[5]*10+q.a[6]]){ 34 visited[q.a[1]*100000+q.a[2]*10000+q.a[3]*1000+q.a[4]*100+q.a[5]*10+q.a[6]]=1; 35 q.d=p.d+1; 36 Q.push(q); 37 } 38 //向右 39 q.a[1]=p.a[3];q.a[2]=p.a[4];q.a[3]=p.a[2];q.a[4]=p.a[1];q.a[5]=p.a[5];q.a[6]=p.a[6]; 40 if(!visited[q.a[1]*100000+q.a[2]*10000+q.a[3]*1000+q.a[4]*100+q.a[5]*10+q.a[6]]){ 41 visited[q.a[1]*100000+q.a[2]*10000+q.a[3]*1000+q.a[4]*100+q.a[5]*10+q.a[6]]=1; 42 q.d=p.d+1; 43 Q.push(q); 44 } 45 //向前 46 q.a[1]=p.a[6];q.a[2]=p.a[5];q.a[3]=p.a[3];q.a[4]=p.a[4];q.a[5]=p.a[1];q.a[6]=p.a[2]; 47 if(!visited[q.a[1]*100000+q.a[2]*10000+q.a[3]*1000+q.a[4]*100+q.a[5]*10+q.a[6]]){ 48 visited[q.a[1]*100000+q.a[2]*10000+q.a[3]*1000+q.a[4]*100+q.a[5]*10+q.a[6]]=1; 49 q.d=p.d+1; 50 Q.push(q); 51 } 52 //向后 53 q.a[1]=p.a[5];q.a[2]=p.a[6];q.a[3]=p.a[3];q.a[4]=p.a[4];q.a[5]=p.a[2];q.a[6]=p.a[1]; 54 if(!visited[q.a[1]*100000+q.a[2]*10000+q.a[3]*1000+q.a[4]*100+q.a[5]*10+q.a[6]]){ 55 visited[q.a[1]*100000+q.a[2]*10000+q.a[3]*1000+q.a[4]*100+q.a[5]*10+q.a[6]]=1; 56 q.d=p.d+1; 57 Q.push(q); 58 } 59 } 60 return -1; 61 } 62 main() 63 { 64 int a[7], b[7]; 65 int i, j, k; 66 while(scanf("%d",&a[1])==1){ 67 memset(visited,0,sizeof(visited)); 68 for(i=2;i<=6;i++) scanf("%d",&a[i]); 69 for(i=1;i<=6;i++) scanf("%d",&b[i]); 70 printf("%d\n",bfs(a,b)); 71 } 72 }
标签:des style blog http color io os java ar
原文地址:http://www.cnblogs.com/qq1012662902/p/3971798.html