zoukankan      html  css  js  c++  java
  • Pocket Cube二阶魔方

    https://www.nowcoder.com/acm/contest/207/B

    HDU5983的一道题,看错了输入,看了题解发现用一位数组存比较方便。

    开两个24的数组存完直接暴力交换就完事了,搞了两个小时,才发现这么简单,真是自闭魔方。

     

    #include <bits/stdc++.h>
    
    using namespace std;
    int a[30], b[30];
    
    int isok()
    {
        int i, j;
        for(i = 1; i <= 24; i += 4)
        {
            for(j = i + 1; j < i + 4; j++)
            {
                if(b[j] != b[j - 1])
                    return 0;
            }
        }
        return 1;
    }
    void cpy()
    {
        for(int i = 1;i <= 24;i++)
            b[i] = a[i];
    }
    int main()
    {
        int t;
        scanf("%d",&t);
        while(t--)
        {
            for(int i = 1; i <= 24; i++)
            {
                scanf("%d",&a[i]);
                b[i] = a[i];
            }
            if(isok())
            {
                printf("YES
    ");
                continue;
            }
            b[2]=a[6];
            b[4]=a[8];
            b[6]=a[10];
            b[8]=a[12];
            b[10]=a[14];
            b[12]=a[16];
            b[14]=a[2];
            b[16]=a[4];
            if(isok())
            {
                printf("YES
    ");
                continue;
            }
            cpy();
    
            b[2]=a[14];
            b[4]=a[16];
            b[6]=a[2];
            b[8]=a[4];
            b[10]=a[6];
            b[12]=a[8];
            b[14]=a[10];
            b[16]=a[12];
            if(isok())
            {
                printf("YES
    ");
                continue;
            }
            cpy();
    
            b[3]=a[23];
            b[4]=a[24];
            b[23]=a[10];
            b[24]=a[9];
            b[10]=a[19];
            b[9]=a[20];
            b[19]=a[3];
            b[20]=a[4];
            if(isok())
            {
                printf("YES
    ");
                continue;
            }
            cpy();
    
            b[3]=a[19];
            b[4]=a[20];
            b[19]=a[10];
            b[20]=a[9];
            b[10]=a[23];
            b[9]=a[24];
            b[23]=a[3];
            b[24]=a[4];
            if(isok())
            {
                printf("YES
    ");
                continue;
            }
            cpy();
    
            b[5]=a[18];
            b[6]=a[20];
            b[18]=a[16];
            b[20]=a[15];
            b[16]=a[23];
            b[15]=a[21];
            b[23]=a[5];
            b[21]=a[6];
            if(isok())
            {
                printf("YES
    ");
                continue;
            }
            cpy();
    
            b[5]=a[23];
            b[6]=a[21];
            b[23]=a[16];
            b[21]=a[15];
            b[16]=a[18];
            b[15]=a[20];
            b[18]=a[5];
            b[20]=a[6];
            if(isok())
            {
                printf("YES
    ");
                continue;
            }
            cpy();
            printf("NO
    ");
        }
        return 0;
    }
  • 相关阅读:
    美国州名来源
    SQL Constraint/Index
    英语中的 姓氏/Surname
    GNU glibc
    英语人名探源/字母升序排列
    About 'atoi'
    封装一个类似jquery的ajax方法
    函数柯里化
    AngularJS实现TodoMVC
    webpack简单使用
  • 原文地址:https://www.cnblogs.com/Json-Five/p/9750198.html
Copyright © 2011-2022 走看看