P2007 魔方

洛谷——P2007 魔方

题目背景

常神牛从来没接触过魔方,所以他要借助计算机来玩。即使是这样,他还是很菜。

题目描述

常神牛家的魔方都是3*3*3的三阶魔方,大家都见过。

(更正:3 4以图为准。)

作为一名菜鸟,常神牛从网上搜了一篇攻略,并找人翻译成了他自己会做的方法。现在告诉你他的魔方情况,以及他从网上搜到的攻略,请你求出最后魔方变成什么样子。

输入输出格式

输入格式:

输入文件为cube.out。

第一行,一串数字(长度不大于100),表示常神牛从网上搜到的攻略。

下面6*3行,每行3个数字,每三行表示魔方一个面的情况,六个面的顺序是前、后、左、右、上、下。

输出格式:

输出文件为cube.out。

6*3行,表示处理后的魔方,形式同输入。

输入输出样例

输入样例#1:

23
121
221
111
123
321
111
123
321
132
132
231
132
121
112
233
332
111
333

输出样例#1:

123
222
113
212
321
113
122
321
132
121
333
121
211
312
113
331
111
331

说明

【样例解释】

我感觉这个题要多恶心有多恶心。

反正就是很恶心!!

看看代码吧(来,恶心一下)

#include<iostream>
#include<cstdio>
using namespace std;
int a[7][4][4],b[4][4],t[4];
void cwface(int k)
{
     for(int i=1;i<=3;i++)
        for(int j=1;j<=3;j++)
            b[i][j]=a[k][i][j];
     for(int i=1;i<=3;i++)
        for(int j=1;j<=3;j++)
           a[k][i][j]=b[4-j][i];
 }
void rt()
{
     for(int i=1;i<=3;i++)t[i]=a[1][i][3];
     for(int i=1;i<=3;i++)a[1][i][3]=a[6][i][3];
     for(int i=1;i<=3;i++)a[6][i][3]=a[2][i][3];
     for(int i=1;i<=3;i++)a[2][i][3]=a[5][i][3];
     for(int i=1;i<=3;i++)a[5][i][3]=t[i];
 }
void up()
{
     for(int i=1;i<=3;i++)t[i]=a[1][1][i];
     for(int i=1;i<=3;i++)a[1][1][i]=a[3][1][i];
     for(int i=1;i<=3;i++)a[3][1][i]=a[2][1][i];
     for(int i=1;i<=3;i++)a[2][1][i]=a[4][1][i];
     for(int i=1;i<=3;i++)a[4][1][i]=t[i];
 }
void doit(int k)
{
     if(k==1){cwface(4);rt();}
     if(k==2){for(int i=1;i<=3;i++)cwface(4);for(int i=1;i<=3;i++)rt();}
     if(k==3){cwface(5);up();}
     if(k==4){for(int i=1;i<=3;i++)cwface(5);for(int i=1;i<=3;i++)up();}
 }
int main()
{
    string str1,str2;cin>>str1;
    for(int i=1;i<=6;i++)
       for(int j=1;j<=3;j++)
       {
          cin>>str2;
          for(int k=0;k<3;k++)
             a[i][j][k+1]=str2[k]-‘0‘;
             }
    for(int i=0;i<str1.length();i++)
    {
            doit(str1[i]-‘0‘);
            }
    for(int i=1;i<=6;i++)
       for(int j=1;j<=3;j++)
       {
          for(int k=1;k<=3;k++)
             printf("%d",a[i][j][k]);
          printf("\n");
             }
    return 0;
}
时间: 2024-08-27 06:12:02

P2007 魔方的相关文章

洛谷——P2007 魔方

题目背景 常神牛从来没接触过魔方,所以他要借助计算机来玩.即使是这样,他还是很菜. 题目描述 常神牛家的魔方都是3*3*3的三阶魔方,大家都见过. (更正:3 4以图为准.) 作为一名菜鸟,常神牛从网上搜了一篇攻略,并找人翻译成了他自己会做的方法.现在告诉你他的魔方情况,以及他从网上搜到的攻略,请你求出最后魔方变成什么样子. 输入输出格式 输入格式: 输入文件为cube.out. 第一行,一串数字(长度不大于100),表示常神牛从网上搜到的攻略. 下面6*3行,每行3个数字,每三行表示魔方一个面

洛谷 【P2007】魔方

P2007 魔方 题目背景 常神牛从来没接触过魔方,所以他要借助计算机来玩.即使是这样,他还是很菜. 题目描述 常神牛家的魔方都是3*3*3的三阶魔方,大家都见过. (更正:3 4以图为准.) 作为一名菜鸟,常神牛从网上搜了一篇攻略,并找人翻译成了他自己会做的方法.现在告诉你他的魔方情况,以及他从网上搜到的攻略,请你求出最后魔方变成什么样子. 输入输出格式 输入格式: 输入文件为cube.out. 第一行,一串数字(长度不大于100),表示常神牛从网上搜到的攻略. 下面6*3行,每行3个数字,每

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.front 2.back 3.left 4.righ

性能魔方七剑下天山之青干剑:CDN2.0,速度加快一倍,成本减少一半

导读:保持健康的身体和精神状态,是每个人所希望的,无论是健康人群.亚健康人群,还是疾病人群都会尽可能去改善,而健康却与诸多因素相关联,任一方面出现问题都会引起健康问题,无法避免,更不能拖延,积极健康管理并且出现问题快速治疗是第一选择,互联网产品和应用健康也当如此. 性能魔方(mmTrix)是国内技术与服务最为顶尖的基础云和大数据服务商,三大核心云服务之一云加速为互联网数百万企业和开发者提供应用健康改善服务,应用.内容.网络自动重构,速度加快一倍,成本减少一半,而且为开发者和中小站提供免费服务.

三阶魔方中心块调整配方和记忆方法

你并不需要将普通三阶魔方中心块,字魔方或者拼图魔方等须要调整中心块的角度. 所以拼图三阶或者数字三阶,都能够在普通三阶魔方的基础之上,再加上例如以下公式,便能够转好. 1.顶面中心块旋转180° URL    U2R'L'   URL    U2R'L'     -----可记为----->     (URL U2R'L')2 2.顶面中心块顺时针转90°同一时候前面中心块逆时针转90° FB' LR' UD'     F'   U'D L'R F'B   U  -----可记为----> 

C++ 华为OJ 二阶魔方

[题目描述] 二阶魔方 魔方可以对它的6个面自由旋转.我们来操作一个2阶魔方(如图1所示)为了描述方便,我们为它建立了坐标系. 各个面的初始状态如下: x轴正向:绿 x轴反向:蓝 y轴正向:红 y轴反向:橙 z轴正向:白 z轴反向:黄 假设我们规定,只能对该魔方进行3种操作.分别标记为: x 表示在x轴正向做顺时针旋转 y 表示在y轴正向做顺时针旋转 z 表示在z轴正向做顺时针旋转 基本旋转后的效果如图2,3,4所示. xyz 则表示顺序执行x,y,z 3个操作 程序输入: 从标准输入获得一个串

三阶魔方中心块调整公式

普通三阶魔方不需要转中心块,但是数字魔方或者拼图魔方等需要调整中心块的角度. 所以拼图三阶或者数字三阶,都可以在普通三阶魔方的基础之上,再加上如下公式,便可以转好. 1.顶面中心块旋转180° U R L U2 R' L' U R L U2 R' L' 2.顶面中心块顺时针转90°同时前面中心块逆时针转90° F B' L R' U D' F' U' D L' R F' B U -----------------------------------------------------------

又是魔方-魔方排名

说实话,对魔方的真真确确的关注始于6年前团队中的一个小兄弟(Rubik) 从  地摊货  到  国甲2 从  国甲2   到   Rubik 从  Rubik   到  大雁-轮回 从 大雁-轮回 到 大雁-磐石(有些失望的魔方)  再回到 大雁-轮回  直到看到 GAN3 最近又得到了: f/s .魔域文化和 大雁-展翅 如果给现在的魔方排名次,一路过来必然如下: 第一名:大雁-展翅.大雁-轮回.魔域文化二代  第二名:GAN3 第三名:f/s 大家在看看下图,感受一下它们的不同: A:f/s

sicily 1151 简单魔方B BFS和哈希判断重复解题

1151. 魔板 Constraints Time Limit: 1 secs, Memory Limit: 32 MB , Special Judge Description 题目和A题相同,在这里我们把数据范围扩大:N可能超过10. 请仔细考虑各种情况. Input 输入包括多个要求解的魔板,每个魔板用三行描述. 第一行步数N,表示最多容许的步数. 第二.第三行表示目标状态,按照魔板的形状,颜色用1到8的表示. 当N等于-1的时候,表示输入结束. Output 对于每一个要求解的魔板,输出一