UVA253 骰子涂色
2020-02-03 02:43
549 查看
此题的解题思路与UVA1587类似,排序后对应的面的字符会是相同的。
给出sample input&output。
rbgggrrggbgr
rrrbbbrrbbbr
rbgrbgrrrrrg
TRUE
FALSE
FALSE
#include<stdio.h> struct cube { int x,y; }; struct cube s1[5],s2[5]; char a[15]; char max(char a,char b) { return a>b?a:b; } char min(char a,char b) { return a<b?a:b; } void sort(struct cube s[]) { int i,j,mark,tempx,tempy; for(i=0;i<3;i++){ mark=i; for(j=i+1;j<3;j++){ if(s[mark].x>s[j].x){ mark=j; } } if(mark!=i){ tempx=s[i].x; tempy=s[i].y; s[i].x=s2[mark].x; s[i].y=s[mark].y; s[mark].x=tempx; s[mark].y=tempy; } } } int main() { int i,mark; while(scanf("%s",a)==1){ //将对应的面的ascii码排序后 s1[0].x=min(a[0],a[5]); //存储到x,y。 s1[0].y=max(a[0],a[5]); s1[1].x=min(a[1],a[3]); s1[1].y=max(a[1],a[3]); s1[2].x=min(a[2],a[4]); s1[2].y=max(a[2],a[4]); s2[0].x=min(a[6],a[11]); s2[0].y=max(a[6],a[11]); s2[1].x=min(a[7],a[9]); s2[1].y=max(a[7],a[9]); s2[2].x=min(a[8],a[10]); s2[2].y=max(a[8],a[10]); sort(s1); sort(s2); //以x为排序对象对3对对应的面进行排序 for(mark=1,i=0;i<3;i++){ //经过了两次排序后,对应的位置应该相同 if(s1[i].x!=s2[i].x || s1[i].y!=s2[i].y){ mark=0; break; } } if(mark) printf("TRUE\n"); else printf("FALSE\n"); } }
此题与UVA1587都运用到长方体有对应的三对面,只要按照一定的顺序排列,两个相同的长方体对应的地方必定会相同。
如有纰漏错误,望指出。
转载于:https://www.cnblogs.com/ZackBee/p/6379538.html
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 习题4-4 uva253骰子涂色简单题解(更新至简洁21行)
- UVa 253 Cube painting(骰子涂色)
- UVA-253-骰子涂色
- 算法竞赛入门经典(第2版)习题4-4 骰子涂色UVa253
- UVA253——骰子涂色(Cube painting)
- 习题4-4 骰子涂色 UVa253
- UVa 253 骰子涂色
- uva253 骰子涂色
- 习题4-4 骰子涂色 UVa253
- 算法竞赛入门经典(第2版)习题4-4 骰子涂色 Uva253
- UVa 253 Cube painting (骰子涂色)
- 算法竞赛入门经典(第2版)习题4-4 骰子涂色 Cube painting UVa 253
- UVa253骰子涂色
- UVa 253 骰子涂色
- UVA - 253 Cube painting(骰子涂色)
- UVa253 Cube painting(骰子涂色)(27行,比较简洁的样子)
- 习题 4-4 骰子涂色(Cubepainting,UVa 253)
- UVA 253 - Cube painting(立方体涂色)
- 算法竞赛入门经典(第二版)-刘汝佳-第四章 函数与递归 骰子上色Uva253
- UVA - 253 Cube painting(涂骰子)