UVa 253 骰子涂色

这道题,刚看到有点不知道怎么入手。紧接着数学的思维在头脑里发散,觉得可以判断两个正方体三组对立面是否相同,提交以后是AC。但是去进行Debug的时候发现有一些数据是过不了的,如”rgrgrb rggrrb“。画了下图发现确实这两个正方体好像就是不太一样,无法旋转成一致的,但是三组对立面都是相同的。找了网上的代码,发现基本上测试这组数据的时候都是“TRUE”,但是答案其实是“FALSE”。。。。。疑团有待解答

下面是代码,可以AC,但是好像不全对。

#include<cstdio>
#include<cstring>
#include<iostream>

char s1[3][2],s2[3][2];
int n2[3];

int main()
{
    int i,j,flag;
    char s[20];
    while(scanf("%s",s) != EOF)
    {
        for(i = 0;i <= 2;i++)
        {
            s1[i][0] = s[i];
        }
        for(i = 3;i <= 5;i++)
        {
            s1[5-i][1] = s[i];
        }
        for(i = 6;i <= 8;i++)
        {
            s2[i-6][0] = s[i];
        }
        for(i = 9;i <= 11;i++)
        {
            s2[11-i][1] = s[i];
        }

        memset(n2,0,sizeof(n2));

        for(i = 0;i <= 2;i++)
        {
            flag = 0;
            for(j = 0;j <= 2;j++)
            {
                if(n2[j] == 0)
                {
                    if(s1[i][0] == s2[j][0])
                    {
                        if(s1[i][1] == s2[j][1])
                        {
                            flag = 1;
                            n2[j] = 1;
                            break;
                        }
                    }
                    else if(s1[i][0] == s2[j][1])
                    {
                        if(s1[i][1] == s2[j][0])
                        {
                            flag = 1;
                            n2[j] = 1;
                            break;
                        }
                    }
                }       
            }
            if(flag == 0)
            {
                printf("FALSE\n");
                break;
            }
        }
        if(i > 2)
        {
            printf("TRUE\n");
        }
    }


    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值