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 }

 

你可能感兴趣的:(cube)