程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> UVA 253 Cube painting,uvacube

UVA 253 Cube painting,uvacube

編輯:C++入門知識

UVA 253 Cube painting,uvacube


大致題意:有三種顏色,一個立方體6面都可以塗一種顏色。現在給出兩個每個面都塗好顏色的立方體,判斷這兩個立方體通過旋轉是否相等。

立方體的旋轉出來的結果有很多,首先可以0,1,2,3,4,5(順序是:上前左右後下)中的任意一面為頂,然後垂直的四個面都可以朝前。

例如:0為上(則下必為5),則旋轉後可以得到以下結果:

  上 前 左 右 後 下

  0  1  2  3  4  5

  0  2  4  1  3  5

  0  4  3  1  2  5

  0  3  1  4  2  5

總共4種情況。六個面也就4*6=24種情況。因為數值不大,可以事先進行預處理。

判斷兩個立方體是否相等的時候,只旋轉第二個立方體就夠了。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;


int main()
{
    //freopen("in.txt","r",stdin);
    int way[6][4][5]= {1,2,3,4,5,2,4,1,3,5,4,3,2,1,5,3,1,4,2,5,0,3,2,5,4,3,5,0,2,4,5,2,3,0,4,2,0,5,3,4,0,1,4,5,3,1,5,0,4,3,5,4,1,0,3,4,0,5,1,3,0,4,1,5,2,4,5,0,1,2,5,1,4,0,2,1,0,5,4,2,0,2,5,3,1,2,5,0,3,1,5,3,2,0,1,3,0,5,2,1,1,3,2,4,0,3,4,1,2,0,4,2,3,1,0,2,1,4,3,0};
    //進行預處理,直接打出所有情況。
    /*for(int i=0;i<6;i++) //輸出所有情況
    {
        for(int j=0;j<4;j++)
        {
            printf("%d",i);
            for(int k=0;k<5;k++)
                printf(" %d",way[i][j][k]);
            printf("\n");
        }
    }*/
    char s[20];
    while(~scanf("%s",s))
    {
        bool flag;
        for(int j=6; j<12; j++)
        {
            flag=false;
            if(s[j]==s[0]) //判斷首顏色是否相等,不相等直接跳過
                for(int k=0; k<4; k++)
                {
                    for(int m=0; m<5; m++)
                    {
                        if(s[way[0][0][m]]!=s[way[j-6][k][m]+6])
                            break;
                        if(m==4)
                            flag=true;
                    }
                    if(flag)
                        break;
                }
            if(flag)
                break;
        }
        if(flag)
            printf("TRUE\n");
        else
            printf("FALSE\n");
    }
    return 0;
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved