UVa 253 Cube paiting

题意:输入两个骰子,判断是否等价

因为每一个面可以作顶面,共6*4种情况,枚举就可以了

  1 #include<iostream>
  2 #include<cstdio>
  3 #include<cstring>
  4 #include <cmath>
  5 #include<stack>
  6 #include<vector>
  7 #include<map>
  8 #include<queue>
  9 #include<algorithm>
 10 #define mod=1e9+7;
 11 using namespace std;
 12
 13 typedef long long LL;
 14 char s[15],t[10],a[105][105];
 15
 16 int main(){
 17     int i,j,n,len;
 18     while(cin>>(s+1)){
 19         memset(a,0,sizeof(a));
 20
 21         strcpy(t,(s+7));
 22
 23     //--------1----
 24         a[1][0]=s[1];
 25         a[1][1]=s[2];
 26         a[1][2]=s[3];
 27         a[1][3]=s[4];
 28         a[1][4]=s[5];
 29         a[1][5]=s[6];
 30
 31         a[2][0]=s[1];
 32         a[2][1]=s[3];
 33         a[2][2]=s[5];
 34         a[2][3]=s[2];
 35         a[2][4]=s[4];
 36         a[2][5]=s[6];
 37
 38         a[3][0]=s[1];
 39         a[3][1]=s[5];
 40         a[3][2]=s[4];
 41         a[3][3]=s[3];
 42         a[3][4]=s[2];
 43         a[3][5]=s[6];
 44
 45         a[4][0]=s[1];
 46         a[4][1]=s[4];
 47         a[4][2]=s[2];
 48         a[4][3]=s[5];
 49         a[4][4]=s[3];
 50         a[4][5]=s[6];
 51
 52         //----2--------
 53
 54         a[5][0]=s[2];
 55         a[5][1]=s[6];
 56         a[5][2]=s[3];
 57         a[5][3]=s[4];
 58         a[5][4]=s[1];
 59         a[5][5]=s[5];
 60
 61         a[6][0]=s[2];
 62         a[6][1]=s[3];
 63         a[6][2]=s[1];
 64         a[6][3]=s[6];
 65         a[6][4]=s[4];
 66         a[6][5]=s[5];
 67
 68         a[7][0]=s[2];
 69         a[7][1]=s[1];
 70         a[7][2]=s[4];
 71         a[7][3]=s[3];
 72         a[7][4]=s[6];
 73         a[7][5]=s[5];
 74
 75         a[8][0]=s[2];
 76         a[8][1]=s[4];
 77         a[8][2]=s[6];
 78         a[8][3]=s[1];
 79         a[8][4]=s[3];
 80         a[8][5]=s[5];
 81
 82     //--------3-------
 83         a[9][0]=s[3];
 84         a[9][1]=s[6];
 85         a[9][2]=s[5];
 86         a[9][3]=s[2];
 87         a[9][4]=s[1];
 88         a[9][5]=s[4];
 89
 90         a[10][0]=s[3];
 91         a[10][1]=s[5];
 92         a[10][2]=s[1];
 93         a[10][3]=s[6];
 94         a[10][4]=s[2];
 95         a[10][5]=s[4];
 96
 97         a[11][0]=s[3];
 98         a[11][1]=s[1];
 99         a[11][2]=s[2];
100         a[11][3]=s[5];
101         a[11][4]=s[6];
102         a[11][5]=s[4];
103
104         a[12][0]=s[3];
105         a[12][1]=s[2];
106         a[12][2]=s[6];
107         a[12][3]=s[1];
108         a[12][4]=s[5];
109         a[12][5]=s[4];
110
111     //--------4--------
112         a[13][0]=s[4];
113         a[13][1]=s[6];
114         a[13][2]=s[2];
115         a[13][3]=s[5];
116         a[13][4]=s[1];
117         a[13][5]=s[3];
118
119         a[14][0]=s[4];
120         a[14][1]=s[2];
121         a[14][2]=s[1];
122         a[14][3]=s[6];
123         a[14][4]=s[5];
124         a[14][5]=s[3];
125
126         a[15][0]=s[4];
127         a[15][1]=s[1];
128         a[15][2]=s[5];
129         a[15][3]=s[2];
130         a[15][4]=s[6];
131         a[15][5]=s[3];
132
133         a[16][0]=s[4];
134         a[16][1]=s[5];
135         a[16][2]=s[6];
136         a[16][3]=s[1];
137         a[16][4]=s[2];
138         a[16][5]=s[3];
139     //-------5---------
140         a[17][0]=s[5];
141         a[17][1]=s[6];
142         a[17][2]=s[4];
143         a[17][3]=s[3];
144         a[17][4]=s[1];
145         a[17][5]=s[2];
146
147         a[18][0]=s[5];
148         a[18][1]=s[4];
149         a[18][2]=s[1];
150         a[18][3]=s[6];
151         a[18][4]=s[3];
152         a[18][5]=s[2];
153
154         a[19][0]=s[5];
155         a[19][1]=s[1];
156         a[19][2]=s[3];
157         a[19][3]=s[4];
158         a[19][4]=s[6];
159         a[19][5]=s[2];
160
161         a[20][0]=s[5];
162         a[20][1]=s[3];
163         a[20][2]=s[6];
164         a[20][3]=s[1];
165         a[20][4]=s[4];
166         a[20][5]=s[2];
167
168     //------6---------
169         a[21][0]=s[6];
170         a[21][1]=s[2];
171         a[21][2]=s[4];
172         a[21][3]=s[3];
173         a[21][4]=s[5];
174         a[21][5]=s[1];
175
176         a[22][0]=s[6];
177         a[22][1]=s[4];
178         a[22][2]=s[5];
179         a[22][3]=s[2];
180         a[22][4]=s[3];
181         a[22][5]=s[1];
182
183         a[23][0]=s[6];
184         a[23][1]=s[5];
185         a[23][2]=s[3];
186         a[23][3]=s[4];
187         a[23][4]=s[2];
188         a[23][5]=s[1];
189
190         a[24][0]=s[6];
191         a[24][1]=s[3];
192         a[24][2]=s[2];
193         a[24][3]=s[5];
194         a[24][4]=s[4];
195         a[24][5]=s[1];
196
197         int flag=0;
198         for(i=1;i<=24;i++){
199             if(strcmp(a[i],t)==0){
200                 printf("TRUE\n");
201                 flag=1;
202                 break;
203             }
204         }
205         if(!flag)
206         printf("FALSE\n");
207     }
208     return 0;
209 }

话说应该写一个旋转骰子的函数的吧= =可是不懂写,于是写下了6*4*6=144行代码来旋转骰子= =

如果是让输入是n面体的话,就不能这样了的说,一会儿搜下题解看看别人的旋转怎么写的

时间: 2024-10-06 08:40:31

UVa 253 Cube paiting的相关文章

uva 253 - Cube painting(相同骰子)

习题4-4 骰子涂色(Cube painting, UVa 253) 输入两个骰子,判断二者是否等价.每个骰子用6个字母表示,如图4-7所示. 图4-7 骰子涂色 例如rbgggr和rggbgr分别表示如图4-8所示的两个骰子.二者是等价的,因为图4-8(a) 所示的骰子沿着竖直轴旋转90°之后就可以得到图4-8(b)所示的骰子. (a) (b) 图4-8 旋转前后的两个骰子 . Sample Input rbgggrrggbgr rrrbbbrrbbbr rbgrbgrrrrrg Sample

uva 253 Cube painting

 Cube painting  We have a machine for painting cubes. It is supplied with three different colors: blue, red and green. Each face of the cube gets one of these colors. The cube's faces are numbered as in Figure 1. Figure 1. Since a cube has 6 faces, o

UVA 253 Cube painting(枚举 模拟)

题意: 按如图的顺序给定2个骰子的颜色(只有r.b.g三种颜色) 问2个骰子是否一模一样 如 可表示为"rbgggr" 和 "rggbgr", 第二个就是绕着Z轴顺时针旋转90度与第一个相同的骰子. 分析: 记录一个错误的做法:并不是只要两面两面互相映射, 如rbrggb 与 rgrgbb, 即使 rb 对应 rb.gb 对应 bg. rg对应rg, 但他们并不是一模一样的骰子.(可以借助真正的骰子旋转尝试一下,就是123456 和 153426, 想象一下2与5互

Cube painting UVA 253

说说:一看到给立方体染色,开始还有点小害怕.毕竟高中数学里染色问题从来都不会简单.这道题的意思就是给立方体的六个面染色,然后判断两个染了色的立方体是否一样.其实仔细一想,立方体无非三对面,若开始确定两对面.如下面图Figure 1所示:假设1,2,6,5这四个面先确定(这只有唯一一种情况)之后,再放3,4,的时候无非两种情况.但这两种情况是不一样的,这也许就是题目所说的reflection.开始的想法是找出三对面,然后比较是否相等即可,不过实在想不出怎样来排除reflection的情况.所以只能

uva253 Cube painting(UVA - 253)

题目大意 输入有三种颜色判断两个骰子是否相同 思路(借鉴) ①先用string输入那12个字符,然后for出两个骰子各自的字符串 ②这里用的算法是先找出第一个的三个面与第二个的六个面去比较,如果找到相同的面并且他们的对面相等那么继续寻找,直到三个面都能找到相对立的面 ③如果有一个面没有找到相等的面或者相等的对面之类的那么就break循环然后直接判断FALSE如果三个面都能满足上述条件,那么就是TRUE 代码 #include <bits/stdc++.h> using namespace st

UVa 253 骰子涂色

https://vjudge.net/problem/UVA-253 题意:输入两个骰子的六面颜色,判断是否等价. 思路:我最想到的是暴力,不过一直错,也不知道哪里错了.第二种方法就是在一个骰子里出现的一对颜色在第二个骰子也有,只要三对颜色都匹配成功,那么就是等价的. 1 #include<iostream> 2 #include<string> 3 #include<cstring> 4 using namespace std; 5 6 char str[20]; 7

UVa 253

背景:一次编译通过加一次ac就是这么爽!!!!!! 思路:枚举六个面朝上,每种情况旋转4次的所有情况,一共24种,全部枚举出来比较即可!这里比较巧妙的是把每一种情况都写作一个长度为6的字符串,并在第七位加一个'\0 ',这样就可以用strcmp来比较了. #include<stdio.h> #include<string.h> int main(void){ char l[7],r[7],temp[13]; l1: while(~scanf("%s",temp)

UVA题目分类

题目 Volume 0. Getting Started 开始10055 - Hashmat the Brave Warrior 10071 - Back to High School Physics 10300 - Ecological Premium 458 - The Decoder 494 - Kindergarten Counting Game 414 - Machined Surfaces 490 - Rotating Sentences 445 - Marvelous Mazes

[CSS3]会动的盒子机器人

[PC与移动端皆可]会动的盒子机器人 浏览器必须可以解析perspective属性. 在线:http://wangxinsheng.herokuapp.com/boxMan 代码: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>[WXS]盒子机器人</title> 6 <meta name="author&