EX的魔方
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的魔方的更多相关文章
- css3之3D魔方动画(小白版)
在这里分享一下3D魔方动画,html5+CSS3即可完成~无图无真相,先上效果图 第一步非常简单,就是先将魔方的结构画出来.大家都玩过魔方,知道魔方是一个有六个面的正方体.这里我们先写一个大的di ...
- 魔方渗透系统安装VMtools教程
虚拟机魔方渗透系统安装VMtools教程 1.开机登陆后,如图点击安装VMtools. 2.进入media文件夹: cd /media 查看mdia文件夹内容: ls 3.打开VMware T ...
- 软媒魔方 v6.2.1.0 绿色纯净版及经典版
软媒魔方,最好用的 Windows 系统增强软件!从最早的优化大师发展为一款系统超级增强套装,自动化.智能化解决各种电脑问题.软媒魔方,全新一代Windows系统增强辅助工具,智能+专业双操控模式,系 ...
- 程设大作业xjb写——魔方复原
鸽了那么久总算期中过[爆]去[炸]了...该是时候写写大作业了 [总不能丢给他们不会写的来做吧 一.三阶魔方的几个基本定义 ↑就像这样,可以定义面的称呼:上U下D左L右R前F后B UD之间的叫E,LR ...
- 用DirectX实现魔方(一)
关于魔方 魔方英文名字叫做Rubik's Cube,是由匈牙利建筑学教授和雕塑家Ernő Rubik于1974年发明,最初叫做Magic Cube(这大概也是中文名字的来历吧),1980年Ideal ...
- 用DirectX实现魔方(三)视角变换及缩放(附源码)
在本系列第一篇介绍过鼠标按键的功能,如下. 左键拖拽 - 旋转魔方 右键拖拽 - 变换视角 滚轮 - 缩放魔方 今天研究一下如何实现后面两个功能,用到的技术主要是Arcball,Arcball是实现M ...
- 用DirectX实现魔方(二)
这篇说一下如何构造魔方,主要包括魔方几何体的构造及纹理贴图.以下论述皆以三阶魔方为例,三阶魔方共有3 x 3 x 3 = 27个小立方体. 构造魔方 在第一篇里面说过,最初模型用的是微软的.x文件格式 ...
- 【BZOJ-1976】能量魔方Cube 最小割 + 黑白染色
1976: [BeiJing2010组队]能量魔方 Cube Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 884 Solved: 307[Submi ...
- 任意阶幻方(魔方矩阵)C语言实现
魔方又称幻方.纵横图.九宫图,最早记录于我国古代的洛书.据说夏禹治水时,河南洛阳附近的大河里浮出了一只乌龟,背上有一个很奇怪的图形,古人认为是一种祥瑞,预示着洪水将被夏禹王彻底制服.后人称之为&quo ...
随机推荐
- HDU 1026 Ignatius and the Princess I(带路径的BFS)
http://acm.hdu.edu.cn/showproblem.php?pid=1026 题意:给出一个迷宫,求出到终点的最短时间路径. 这道题目在迷宫上有怪物,不同HP的怪物会损耗不同的时间,这 ...
- JS~~~ 前端开发一些常用技巧 模块化结构 &&&&& 命名空间处理 奇技淫巧!!!!!!
前端开发一些常用技巧 模块化结构 &&&&& 命名空间处理 奇技淫巧!!!!!!2016-09-29 17 ...
- 【P1915】[usaco09 dec gold]电视游戏问题
在百度上搜到了nzx学长的题解orz 原题: 农夫约翰的奶牛们游戏成瘾!本来FJ是想要按照陶叫兽的做法拿她们去电击戒瘾的,可是后来他发现奶牛们玩游戏之后比原先产更多的奶.很明显,这是因为满足的牛会产更 ...
- (转)LINUX测试环境部署Redis(四)
安装配置Redis 第一部分:安装redis 希望将redis安装到此目录 1 /usr/local/redis 希望将安装包下载到此目录 1 /usr/local/src 那么安装过程指令如下: ...
- [原创]cocos2d-x研习录-第三阶 特性之动作
在前面的Cocos2D-x的概念类中,我们了解到节点类CCNode.导演类CCDirector.场景类CCScene.布景层类CCLayer和精灵类CCSprite等,这些类都是构成游戏画面的基本元素 ...
- 迭代器模式(Iterator Pattern)
迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示. 迭代器模式(Iterator)就是分离了聚合对象的遍历行为,抽象出一个迭代器来负责这样既可以 ...
- SQLServer 数据库查看死锁、堵塞的SQL语句
http://www.cnblogs.com/zhuque/archive/2012/11/08/2763343.html 死锁和堵塞一直是性能测试执行中关注的重点. 下面是我整理的监控sql ser ...
- Microsoft Win32 to Microsoft .NET Framework API Map
Microsoft Win32 to Microsoft .NET Framework API Map .NET Development (General) Technical Articles ...
- RabbitMQ、Rdis
RabbitMQ RabbitMQ:官方网址:http://www.rabbitmq.com/ Install Erlang # rpm -ivh erlang-18.3-1.el6.x86_64.r ...
- Github使用指南-从新手到专家
转载自:http://www.cnblogs.com/xirongliu/p/4589834.html 个人从刚刚开始接触github,啥都不知道,不会用,不知道能够用来干什么,到现在坚持在githu ...