https://www.luogu.org/problem/show?pid=2007

题目背景

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

题目描述

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

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

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

输入输出格式

输入格式:

输入文件为cube.out。

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

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

输出格式:

输出文件为cube.out。

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

这题真是恶心到我了 谁让我想象力差 怪我喽

应该有更简便的写法 没找到啥规律 直接模拟 但是网上找程序对拍的时候发现我写的其实没有那么长...

 #include<iostream>
 #include<cstring>
 #include<cstdio>
 using namespace std;
 ],mf[][];
 ]={,,,,,,,,,},f2[]={,,,},f3[]={,,,};
 void roate1(int k){
     ];
     ;i<=;i++){
         go[f[i]]=mf[k][i];
     };i<=;i++) mf[k][i]=go[i];
 }
 void O1(){
     roate1();
     ];
     ;i<=;i++) t[i]=mf[][f3[i]];
     ;i<=;i++) mf[][f3[i]]=mf[][f3[i]];
     ;i<=;i++) mf[][f3[i]]=mf[][f3[i]];
     ;i<=;i++) mf[][f3[i]]=mf[][f3[i]];
     ;i<=;i++) mf[][f3[i]]=t[i];
 }
 void O2(){
     O1();O1();O1();
 }
 void O4(){
     roate1();roate1();roate1();
     ];
     ;i<=;i++) t[i]=mf[][f2[i]];
     ;i<=;i++) mf[][f2[i]]=mf[][f2[i]];
     ;i<=;i++) mf[][f2[i]]=mf[][f2[i]];
     ;i<=;i++) mf[][f2[i]]=mf[][f2[i]];
     ;i<=;i++) mf[][f2[i]]=t[i];
 }
 void O3(){
     O4();O4();O4();
 }
 char in(){
     char c=getchar();
     while(c=='\n'||c==' ')c=getchar();
     return c;
 }
 int main()
 {
     //freopen("mf.in","r",stdin);
     //freopen("mf.out","w",stdout);
     scanf("%s",op);
     ;i<=;i++){
         ;j<=;j++)
             cin>>mf[i][j];
     }
     ;i<strlen(op);i++){
         switch(op[i]){
             ':O1();
             break;
             ':O2();
             break;
             ':O3();
             break;
             ':O4();
             break;
         }
     }
     ;i<=;i++){
         ;j<=;j++){
             printf("%c",mf[i][j]);
             ==) printf("\n");
         }
     }
     ;
 }

呵呵

 #include <cstdio>
 #include <algorithm>
 #include <cstring>
 using namespace std;
 ];
 ][][], t1, t2, t3;
 void show(int k)
 {
     int i, j;
     ;i<=;i++)
     {
         ;j<=;j++)printf("%d",mat[k][i][j]);
         printf("\n");
     }
 }
 void fu(int &a1, int &a2, int &a3, int &b1, int &b2, int &b3)
 {a1=b1;a2=b2;a3=b3;}
 void solve(int o)
 {
     )
     {
         fu(t1,t2,t3,mat[][][],mat[][][],mat[][][]);
         fu(mat[][][],mat[][][],mat[][][],mat[][][],mat[][][],mat[][][]);
         fu(mat[][][],mat[][][],mat[][][],mat[][][],mat[][][],mat[][][]);
         fu(mat[][][],mat[][][],mat[][][],mat[][][],mat[][][],mat[][][]);
         fu(mat[][][],mat[][][],mat[][][],t1,t2,t3);
         fu(t1,t2,t3,mat[][][],mat[][][],mat[][][]);//顺时针
         fu(mat[][][],mat[][][],mat[][][],mat[][][],mat[][][],mat[][][]);
         fu(mat[][][],mat[][][],mat[][][],mat[][][],mat[][][],mat[][][]);
         fu(mat[][][],mat[][][],mat[][][],mat[][][],mat[][][],mat[][][]);
         fu(mat[][][],mat[][][],mat[][][],t1,t2,t3);
     }
     )
     {
         fu(t1,t2,t3,mat[][][],mat[][][],mat[][][]);
         fu(mat[][][],mat[][][],mat[][][],mat[][][],mat[][][],mat[][][]);
         fu(mat[][][],mat[][][],mat[][][],mat[][][],mat[][][],mat[][][]);
         fu(mat[][][],mat[][][],mat[][][],mat[][][],mat[][][],mat[][][]);
         fu(mat[][][],mat[][][],mat[][][],t1,t2,t3);
         fu(t1,t2,t3,mat[][][],mat[][][],mat[][][]);
         fu(mat[][][],mat[][][],mat[][][],mat[][][],mat[][][],mat[][][]);
         fu(mat[][][],mat[][][],mat[][][],mat[][][],mat[][][],mat[][][]);
         fu(mat[][][],mat[][][],mat[][][],mat[][][],mat[][][],mat[][][]);
         fu(mat[][][],mat[][][],mat[][][],t1,t2,t3);
     }
     )
     {
         fu(t1,t2,t3,mat[][][],mat[][][],mat[][][]);
         fu(mat[][][],mat[][][],mat[][][],mat[][][],mat[][][],mat[][][]);
         fu(mat[][][],mat[][][],mat[][][],mat[][][],mat[][][],mat[][][]);
         fu(mat[][][],mat[][][],mat[][][],mat[][][],mat[][][],mat[][][]);
         fu(mat[][][],mat[][][],mat[][][],t1,t2,t3);
         fu(t1,t2,t3,mat[][][],mat[][][],mat[][][]);
         fu(mat[][][],mat[][][],mat[][][],mat[][][],mat[][][],mat[][][]);
         fu(mat[][][],mat[][][],mat[][][],mat[][][],mat[][][],mat[][][]);
         fu(mat[][][],mat[][][],mat[][][],mat[][][],mat[][][],mat[][][]);
         fu(mat[][][],mat[][][],mat[][][],t1,t2,t3);
     }
     )
     {
         fu(t1,t2,t3,mat[][][],mat[][][],mat[][][]);
         fu(mat[][][],mat[][][],mat[][][],mat[][][],mat[][][],mat[][][]);
         fu(mat[][][],mat[][][],mat[][][],mat[][][],mat[][][],mat[][][]);
         fu(mat[][][],mat[][][],mat[][][],mat[][][],mat[][][],mat[][][]);
         fu(mat[][][],mat[][][],mat[][][],t1,t2,t3);
         fu(t1,t2,t3,mat[][][],mat[][][],mat[][][]);
         fu(mat[][][],mat[][][],mat[][][],mat[][][],mat[][][],mat[][][]);
         fu(mat[][][],mat[][][],mat[][][],mat[][][],mat[][][],mat[][][]);
         fu(mat[][][],mat[][][],mat[][][],mat[][][],mat[][][],mat[][][]);
         fu(mat[][][],mat[][][],mat[][][],t1,t2,t3);
     }
 }
 int main()
 {
     freopen("mf.in","r",stdin);
     freopen("ans.out","w",stdout);
     int i, j, k;
     ];
     scanf();
     ;k<=;k++)
     {
         ;i<=;i++)
         {
             scanf();
             ;j<=;j++)mat[k][i][j]=s[j]-;
         }
     }
     ;order[i];i++)solve(();
     ;k<=;k++)show(k);
     ;
 }

EX的魔方的更多相关文章

  1. css3之3D魔方动画(小白版)

      在这里分享一下3D魔方动画,html5+CSS3即可完成~无图无真相,先上效果图 第一步非常简单,就是先将魔方的结构画出来.大家都玩过魔方,知道魔方是一个有六个面的正方体.这里我们先写一个大的di ...

  2. 魔方渗透系统安装VMtools教程

    虚拟机魔方渗透系统安装VMtools教程 1.开机登陆后,如图点击安装VMtools. 2.进入media文件夹: cd /media   查看mdia文件夹内容: ls   3.打开VMware T ...

  3. 软媒魔方 v6.2.1.0 绿色纯净版及经典版

    软媒魔方,最好用的 Windows 系统增强软件!从最早的优化大师发展为一款系统超级增强套装,自动化.智能化解决各种电脑问题.软媒魔方,全新一代Windows系统增强辅助工具,智能+专业双操控模式,系 ...

  4. 程设大作业xjb写——魔方复原

    鸽了那么久总算期中过[爆]去[炸]了...该是时候写写大作业了 [总不能丢给他们不会写的来做吧 一.三阶魔方的几个基本定义 ↑就像这样,可以定义面的称呼:上U下D左L右R前F后B UD之间的叫E,LR ...

  5. 用DirectX实现魔方(一)

    关于魔方 魔方英文名字叫做Rubik's Cube,是由匈牙利建筑学教授和雕塑家Ernő Rubik于1974年发明,最初叫做Magic Cube(这大概也是中文名字的来历吧),1980年Ideal ...

  6. 用DirectX实现魔方(三)视角变换及缩放(附源码)

    在本系列第一篇介绍过鼠标按键的功能,如下. 左键拖拽 - 旋转魔方 右键拖拽 - 变换视角 滚轮 - 缩放魔方 今天研究一下如何实现后面两个功能,用到的技术主要是Arcball,Arcball是实现M ...

  7. 用DirectX实现魔方(二)

    这篇说一下如何构造魔方,主要包括魔方几何体的构造及纹理贴图.以下论述皆以三阶魔方为例,三阶魔方共有3 x 3 x 3 = 27个小立方体. 构造魔方 在第一篇里面说过,最初模型用的是微软的.x文件格式 ...

  8. 【BZOJ-1976】能量魔方Cube 最小割 + 黑白染色

    1976: [BeiJing2010组队]能量魔方 Cube Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 884  Solved: 307[Submi ...

  9. 任意阶幻方(魔方矩阵)C语言实现

    魔方又称幻方.纵横图.九宫图,最早记录于我国古代的洛书.据说夏禹治水时,河南洛阳附近的大河里浮出了一只乌龟,背上有一个很奇怪的图形,古人认为是一种祥瑞,预示着洪水将被夏禹王彻底制服.后人称之为&quo ...

随机推荐

  1. Maven安装使用

    环境:Ubuntu 12.04LTS,jdk1.6 1.下载maven3.05: 2.解压并获取M2/bin/mvn地址: 3.创建~/.mavenrc文件,并加入JAVA_HOME并export(需 ...

  2. linux性能指令分析进阶篇

    作为刚刚走入测试领域的我来说,对性能测试了解的也不是很深,只不过自己平常一直在收集资料,性能测试也没有那么神秘,也请广大测试小白不要陷入误区,其实性能测试跟功能测试关系并不大,即使你做10年功能测试, ...

  3. ubuntu系统lamp环境搭建、数据库迁移、设置数据库外部访问

    sudo passwd root设置两次密码su输入设置的密码exit (退出root帐号) 1.sudo apt-get update 2.sudo apt-get install apache2 ...

  4. 自动运维:Ansible -ansible tower

    文档主页:http://docs.ansible.com/参考文档:http://docs.ansible.com/ansible/参考文档:http://docs.ansible.com/ansib ...

  5. kafka单节点测试

    ======================命令====================== 启动zookeeper server bin/zookeeper-server-start.sh conf ...

  6. [综] PCA降维

    http://blog.json.tw/using-matlab-implementing-pca-dimension-reduction 設有m筆資料, 每筆資料皆為n維, 如此可將他們視為一個mx ...

  7. vlc 在ie11 中的addEventListener事件不触发

    在vlc控件中触发一事件,在IE11之前的版本使用attachEvent注册一个回调函数后IE11可以捕获到事件,但IE11中提示attachEvent不支持.经查询发现IE11已经去掉了attach ...

  8. day21、模块

    模块: 模块,用一砣代码实现了某个功能的代码集合.不同功能,放置在不同模块中,模块就是一个.py文件.避免函数重复写代码.对于相同功能的代码.只需要调用该模块或者该模块里面的函数就可以.增加灵活性,和 ...

  9. 擦掉STM32F429芯片上的数据的一个方法

    刚入手一块STM32F429Discovery.手痒痒的,准备写个程序进去.一不小心,把MCU的调试接口SW.JTAG全部给禁用了.这下可坏了,写不进去程序,擦不掉数据.愁的某家一头大汗.突然想起了当 ...

  10. 初版storm项目全流程自动化测试代码实现

    由于项目需要,写了版针对业务的自动化测试代码,主要应用场景在于由于业务日趋复杂,一些公共代码的改动,担心会影响已有业务.还没进行重写,但知识点还是不少的与大家分享实践下.首先,介绍下整个流处理的业务流 ...