HDU

来源:互联网 发布:import java 编辑:程序博客网 时间:2024/06/11 01:56

简单模拟,为啥简单呢,因为:

这里写图片描述

#include<bits/stdc++.h>using namespace std;int a[50],b[50];bool check(){ //检查    for (int i = 0; i < 24; i += 4){        for (int j = i; j < i+4; ++j){            if (b[j] != b[i]) return false;        }    }    return true;}void cop() //复原{    for(int i=0;i<24;i++) b[i]=a[i];}bool zhuan(int *aa){    cop();   for(int i=0;i<8;i++)    b[aa[(i+2)%8]]=a[aa[i]];    if(check()) return true;    return false;}bool judge(){    cop();    int a1[10]={0,2,4,6,8,10,12,14};    int a2[10]={1,3,5,7,9,11,13,15};    int a3[10]={0,1,20,21,11,10,16,17};    int a4[10]={2,3,22,23,9,8,18,19};    int a5[10]={4,5,22,20,15,14,17,19};    int a6[10]={6,7,23,21,13,12,16,18};    return  check()||zhuan(a1)||zhuan(a2)||zhuan(a3)||zhuan(a4)||zhuan(a5)||zhuan(a6);}int main(){    int t;    cin>>t;    while(t--)    {        set<int> st;        for(int i=0;i<24;i++)        {            scanf("%d",&a[i]);        }        if(judge()) cout<<"YES"<<endl;        else cout<<"NO"<<endl;    }}
原创粉丝点击