标签:bsp 今天 pac open 状态 lap 结束 bee for
题目大意:
给出一个二阶魔方的状态,问能否转至多一次就复原。
思路:
我直接枚举了六种转法。(第一次交的那个居然有4种都有点小错误。/(ㄒoㄒ)/~~)
1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 int T,cube[7][5],cu[7][5]; 6 void work() 7 { 8 for(int i=1;i<=6;i++) 9 for(int j=1;j<=4;j++)cu[i][j]=cube[i][j]; 10 return ; 11 } 12 bool work0() 13 { 14 for(int i=1;i<=6;i++) 15 for(int j=1;j<=4;j++) 16 if(cu[i][j]!=cu[i][1])return false; 17 return true; 18 } 19 bool work1() 20 { 21 work(); 22 int tem[5]; 23 for(int i=1;i<=4;i++)tem[i]=cu[1][i]; 24 cu[1][2]=cu[2][2];cu[1][4]=cu[2][4]; 25 cu[2][2]=cu[3][2];cu[2][4]=cu[3][4]; 26 cu[3][2]=cu[4][2];cu[3][4]=cu[4][4]; 27 cu[4][2]=tem[2];cu[4][4]=tem[4]; 28 return work0(); 29 } 30 bool work2() 31 { 32 work(); 33 int tem[5]; 34 for(int i=1;i<=4;i++)tem[i]=cu[1][i]; 35 cu[1][2]=cu[4][2];cu[1][4]=cu[4][4]; 36 cu[4][2]=cu[3][2];cu[4][4]=cu[3][4]; 37 cu[3][2]=cu[2][2];cu[3][4]=cu[2][4]; 38 cu[2][2]=tem[2];cu[2][4]=tem[4]; 39 return work0(); 40 } 41 bool work3() 42 { 43 work(); 44 int tem[5]; 45 for(int i=1;i<=4;i++)tem[i]=cu[1][i]; 46 cu[1][3]=cu[6][3];cu[1][4]=cu[6][4]; 47 cu[6][3]=cu[3][2];cu[6][4]=cu[3][1]; 48 cu[3][2]=cu[5][3];cu[3][1]=cu[5][4]; 49 cu[5][3]=tem[3];cu[5][4]=tem[4]; 50 return work0(); 51 } 52 bool work4() 53 { 54 work(); 55 int tem[5]; 56 for(int i=1;i<=4;i++)tem[i]=cu[1][i]; 57 cu[1][3]=cu[5][3];cu[1][4]=cu[5][4]; 58 cu[5][3]=cu[3][2];cu[5][4]=cu[3][1]; 59 cu[3][2]=cu[6][3];cu[3][1]=cu[6][4]; 60 cu[6][3]=tem[3];cu[6][4]=tem[4]; 61 return work0(); 62 } 63 bool work5() 64 { 65 work(); 66 int tem[5]; 67 for(int i=1;i<=4;i++)tem[i]=cu[5][i]; 68 cu[5][2]=cu[2][1];cu[5][4]=cu[2][2]; 69 cu[2][1]=cu[6][3];cu[2][2]=cu[6][1]; 70 cu[6][3]=cu[4][4];cu[6][1]=cu[4][3]; 71 cu[4][4]=tem[2];cu[4][3]=tem[4]; 72 return work0(); 73 } 74 bool work6() 75 { 76 work(); 77 int tem[5]; 78 for(int i=1;i<=4;i++)tem[i]=cu[5][i]; 79 cu[5][2]=cu[4][4];cu[5][4]=cu[4][3]; 80 cu[4][4]=cu[6][3];cu[4][3]=cu[6][1]; 81 cu[6][3]=cu[2][1];cu[6][1]=cu[2][2]; 82 cu[2][1]=tem[2];cu[2][2]=tem[4]; 83 return work0(); 84 } 85 int main() 86 { 87 scanf("%d",&T); 88 for(int I=1;I<=T;I++) 89 { 90 for(int i=1;i<=6;i++) 91 for(int j=1;j<=4;j++)scanf("%d",&cube[i][j]); 92 work(); 93 if(work0()) 94 { 95 printf("YES\n"); 96 continue; 97 } 98 if(work1()) 99 { 100 printf("YES\n"); 101 continue; 102 } 103 if(work2()) 104 { 105 printf("YES\n"); 106 continue; 107 } 108 if(work2()) 109 { 110 printf("YES\n"); 111 continue; 112 } 113 if(work3()) 114 { 115 printf("YES\n"); 116 continue; 117 } 118 if(work4()) 119 { 120 printf("YES\n"); 121 continue; 122 } 123 if(work5()) 124 { 125 printf("YES\n"); 126 continue; 127 } 128 if(work6()) 129 { 130 printf("YES\n"); 131 continue; 132 } 133 printf("NO\n"); 134 } 135 return 0; 136 }
/*****今天,队友A掉两题后,竟然还有水题,我非常激动(前几天我都是没做一道就结束了),结果wa了6次才a,以后模拟还是要细心点。*******/
标签:bsp 今天 pac open 状态 lap 结束 bee for
原文地址:https://www.cnblogs.com/LiqgNonqfu/p/9745190.html