首页 > 代码库 > AC日记——魔方 洛谷 P2007
AC日记——魔方 洛谷 P2007
魔方
思路:
模拟;
代码:
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;struct MFType { int ai[4][4];};struct MFType ci[7];int len;char done[500],ch[10];/*1.front2.back3.left4.right5.top6.under*/void OperationType_right_turning90(){ MFType *now=&ci[4],tmp=ci[4]; now->ai[1][1]=tmp.ai[3][1]; now->ai[1][2]=tmp.ai[2][1]; now->ai[1][3]=tmp.ai[1][1]; now->ai[2][1]=tmp.ai[3][2]; now->ai[2][3]=tmp.ai[1][2]; now->ai[3][1]=tmp.ai[3][3]; now->ai[3][2]=tmp.ai[2][3]; now->ai[3][3]=tmp.ai[1][3]; now=&ci[1],tmp=ci[1]; MFType *pos=&ci[6]; now->ai[1][3]=pos->ai[1][3]; now->ai[2][3]=pos->ai[2][3]; now->ai[3][3]=pos->ai[3][3]; now=&ci[6],pos=&ci[2]; now->ai[1][3]=pos->ai[1][3]; now->ai[2][3]=pos->ai[2][3]; now->ai[3][3]=pos->ai[3][3]; now=&ci[2],pos=&ci[5]; now->ai[1][3]=pos->ai[1][3]; now->ai[2][3]=pos->ai[2][3]; now->ai[3][3]=pos->ai[3][3]; now=&ci[5],pos=&tmp; now->ai[1][3]=pos->ai[1][3]; now->ai[2][3]=pos->ai[2][3]; now->ai[3][3]=pos->ai[3][3];}void OperationType_right_turningback90(){ MFType *now=&ci[4],tmp=ci[4]; now->ai[1][1]=tmp.ai[1][3]; now->ai[1][2]=tmp.ai[2][3]; now->ai[1][3]=tmp.ai[3][3]; now->ai[2][1]=tmp.ai[1][2]; now->ai[2][3]=tmp.ai[3][2]; now->ai[3][1]=tmp.ai[1][1]; now->ai[3][2]=tmp.ai[2][1]; now->ai[3][3]=tmp.ai[3][1]; now=&ci[1],tmp=ci[1]; MFType *pos=&ci[5]; now->ai[1][3]=pos->ai[1][3]; now->ai[2][3]=pos->ai[2][3]; now->ai[3][3]=pos->ai[3][3]; now=&ci[5],pos=&ci[2]; now->ai[1][3]=pos->ai[1][3]; now->ai[2][3]=pos->ai[2][3]; now->ai[3][3]=pos->ai[3][3]; now=&ci[2],pos=&ci[6]; now->ai[1][3]=pos->ai[1][3]; now->ai[2][3]=pos->ai[2][3]; now->ai[3][3]=pos->ai[3][3]; now=&ci[6],pos=&tmp; now->ai[1][3]=pos->ai[1][3]; now->ai[2][3]=pos->ai[2][3]; now->ai[3][3]=pos->ai[3][3];}void OperationType_top_turning90(){ MFType *now=&ci[5],tmp=ci[5]; now->ai[1][1]=tmp.ai[3][1]; now->ai[1][2]=tmp.ai[2][1]; now->ai[1][3]=tmp.ai[1][1]; now->ai[2][1]=tmp.ai[3][2]; now->ai[2][3]=tmp.ai[1][2]; now->ai[3][1]=tmp.ai[3][3]; now->ai[3][2]=tmp.ai[2][3]; now->ai[3][3]=tmp.ai[1][3]; now=&ci[1],tmp=ci[1]; MFType *pos=&ci[3]; now->ai[1][1]=pos->ai[1][1]; now->ai[1][2]=pos->ai[1][2]; now->ai[1][3]=pos->ai[1][3]; now=&ci[3],pos=&ci[2]; now->ai[1][1]=pos->ai[1][1]; now->ai[1][2]=pos->ai[1][2]; now->ai[1][3]=pos->ai[1][3]; now=&ci[2],pos=&ci[4]; now->ai[1][1]=pos->ai[1][1]; now->ai[1][2]=pos->ai[1][2]; now->ai[1][3]=pos->ai[1][3]; now=&ci[4],pos=&tmp; now->ai[1][1]=pos->ai[1][1]; now->ai[1][2]=pos->ai[1][2]; now->ai[1][3]=pos->ai[1][3];}void OperationType_top_turningback90(){ MFType *now=&ci[5],tmp=ci[5]; now->ai[1][1]=tmp.ai[1][3]; now->ai[1][2]=tmp.ai[2][3]; now->ai[1][3]=tmp.ai[3][3]; now->ai[2][1]=tmp.ai[1][2]; now->ai[2][3]=tmp.ai[3][2]; now->ai[3][1]=tmp.ai[1][1]; now->ai[3][2]=tmp.ai[2][1]; now->ai[3][3]=tmp.ai[3][1]; now=&ci[1],tmp=ci[1]; MFType *pos=&ci[4]; now->ai[1][1]=pos->ai[1][1]; now->ai[1][2]=pos->ai[1][2]; now->ai[1][3]=pos->ai[1][3]; now=&ci[4],pos=&ci[2]; now->ai[1][1]=pos->ai[1][1]; now->ai[1][2]=pos->ai[1][2]; now->ai[1][3]=pos->ai[1][3]; now=&ci[2],pos=&ci[3]; now->ai[1][1]=pos->ai[1][1]; now->ai[1][2]=pos->ai[1][2]; now->ai[1][3]=pos->ai[1][3]; now=&ci[3],pos=&tmp; now->ai[1][1]=pos->ai[1][1]; now->ai[1][2]=pos->ai[1][2]; now->ai[1][3]=pos->ai[1][3];}void debug(){ printf("\n"); for(int i=1;i<=6;i++) { printf("%d\n",i); for(int j=1;j<=3;j++) { for(int v=1;v<=3;v++) printf("%d",ci[i].ai[j][v]); printf("\n"); } printf("\n"); } printf("\n");}int main(){ freopen("cube.in","r",stdin); freopen("cube.out","w",stdout); scanf("%s",done),len=strlen(done); for(int i=1;i<=6;i++) { for(int j=1;j<=3;j++) { scanf("%s",ch); for(int v=1;v<=3;v++) ci[i].ai[j][v]=ch[v-1]-‘0‘; } }// debug(); for(int i=0;i<len;i++) { if(done[i]==‘1‘) OperationType_right_turning90(); else if(done[i]==‘2‘) OperationType_right_turningback90(); else if(done[i]==‘3‘) OperationType_top_turning90(); else if(done[i]==‘4‘) OperationType_top_turningback90();// debug(); } for(int i=1;i<=6;i++) { for(int j=1;j<=3;j++) { for(int v=1;v<=3;v++) printf("%d",ci[i].ai[j][v]); printf("\n"); } } return 0;}
AC日记——魔方 洛谷 P2007
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。