URAL 1878. Rubinchik's Cube(恶搞)
和QC没事搞个练习赛,感觉水题居多,这个是我做的唯一比较印象深刻的。这个题,看着题意 那叫一个纠结啊。
然后 有点恶搞,以为BFS,DFS神马的,自己乱写了几个代码,错了两次后,想到了正解。。。幸好认真思考了。。。
1 #include <stdio.h> 2 #include <string.h> 3 #define N 1000000 4 int p[5][5],z,o[5]; 5 int main() 6 { 7 int i,j,min,k; 8 z = 0; 9 for(i = 1; i <= 4; i ++) 10 for(j = 1; j <= 4; j ++) 11 scanf("%d",&p[i][j]); 12 for(i = 1; i <= 2; i ++) 13 for(j = 1; j <= 2; j ++) 14 { 15 o[p[i][j]] ++; 16 } 17 min = N; 18 for(k = 1; k <= 4; k ++) 19 { 20 z = 0; 21 if(p[1][1] != k) 22 { 23 if(p[4][1] == k||p[1][4] == k) 24 z ++; 25 else 26 z += 2; 27 } 28 if(p[1][2] != k) 29 { 30 if(p[2][4] == k||p[3][1] == k) 31 z ++; 32 else 33 z += 2; 34 } 35 if(p[2][1] != k) 36 { 37 if(p[1][3] == k||p[4][2] == k) 38 z ++; 39 else 40 z += 2; 41 } 42 if(p[2][2] != k) 43 { 44 if(p[2][3] == k||p[3][2] == k) 45 z ++; 46 else 47 z += 2; 48 } 49 if(min > z) 50 min = z; 51 } 52 printf("%d\n",min); 53 return 0; 54 }