码迷,mamicode.com
首页 > 其他好文 > 详细

UVA 253 Cube painting

时间:2019-01-27 01:10:30      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:lib   nbsp   div   左旋转   技术   efi   [1]   分布   注意   

题意:输入字符串代表2个骰子,求出他们是不是相同的骰子(通过旋转)。

思路:①注意输入的字符串代表了骰子颜色的分布,如下:

技术分享图片

同时这也是数颜色的顺序(未转动时),和字符串内容的顺序。

②骰子1不动,骰子2不停转动,分别选0到5做上图标号为1的位置(6次),然后2到4不停的转动(即4面转动,4次),

共24次(最坏)。

③下图分别为1转动到位置编号1,和0在位置编号0,骰子水平面向左旋转90°得到的骰子。

技术分享图片           技术分享图片

数一下,分别是1,5,2,3,0,4,  和0,3,1,4,2

分别重复,可以观察出:1.旋转6次对应的颜色顺序;

2.旋转其实是,ch=str3[1];str3[1]=str3[2];str3[2]=str3[4];str3[4]=str3[3];str3[3]=ch;
 

 1 #include "stdio.h"
 2 #include "string.h"
 3 #include "stdlib.h"
 4 #define FIN freopen("input.txt","r",stdin)
 5 #define FOUT     freopen("output.txt","w",stdout)
 6 char c[12],str1[7],str2[7],str3[7];
 7 int roll[7][7] = { {0,1,2,3,4,5},{1,5,2,3,0,4},{2,1,5,0,4,3}, {3,1,0,5,4,2},{4,0,2,3,5,1},{5,4,2,3,1,0}};
 8 int main()
 9 {
10 //    FIN;
11 //    FOUT;
12     while(scanf("%s",c)!=EOF)
13     {
14         for(int i=0;i<12;i++)
15         {
16             if(i<=5)
17                 str1[i]=c[i];
18             else
19                 str2[i-6]=c[i];
20         }
21         str1[6]=\0;
22         str2[6]=\0;
23         int flag=0;
24 //        printf("1=%s 2=%s\n",str1,str2);
25         for(int i=0;i<6;i++)
26         {
27             for(int j=0;j<6;j++)
28                 str3[j]=str2[roll[i][j]];
29             str1[6]=\0;
30             if(strcmp(str1,str3)==0)
31             {
32                 flag=1;
33                 break;
34             }
35             for(int j=0;j<3;j++)
36             {
37                 char ch=str3[1];
38                 str3[1]=str3[2];
39                 str3[2]=str3[4];
40                 str3[4]=str3[3];
41                 str3[3]=ch;
42                 if(strcmp(str1,str3)==0)
43                 {
44                     flag=1;
45                     break;
46                 }
47             }
48             if(flag)
49                 break;
50         }
51         if(flag)
52             printf("TRUE\n");
53         else
54             printf("FALSE\n");
55     }
56     return 0;
57 }

 

             
               
               

 

UVA 253 Cube painting

标签:lib   nbsp   div   左旋转   技术   efi   [1]   分布   注意   

原文地址:https://www.cnblogs.com/fudanxi/p/10325356.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!