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 ...
随机推荐
- tcpdf最新版 6.2版
tcpdf6.2版,地址记 录 http://download.csdn.net/detail/hayywcy/9547873
- 3数字cn域名延续数字域名火爆行情! 珍品域名 593.cn 出售
近日, 域名投资者小维放出珍藏多年的珍品域名593.cn, 据悉该域名将参加易名中国举办的数字域名专场拍卖活动,将以1元标价起拍. 域名593.cn,数字“593”谐音“我就上.吾就上.我就商 ...
- python 调用浏览器方法
每天都要登陆某网站,刷积分.为了节省时间,用了下python中的webbrowser模块.新建.py 文件 #!/usr/bin/python import webbrowser webbrowser ...
- python 模块库
python mod --------------------os https://segmentfault.com/a/1190000003061079logging ...
- Oracle RAC asm常用命令
在Oracle RAC环境下,使用grid帐号执行 运行asmcmd进入asm命令模式,如: [grid@oradb-node1 ~]$ asmcmd ASMCMD> ASMCMD> du ...
- Rails 4.0 移除了 XML 参数解析器。若要使用请加入 actionpack-xml_parser
拜读了用 Rails 搭建微信公众平台 API之后发现, params[:xml]这个办法在Rails 4里面已经被办掉了,于是就看了一下Rails 4的新特性发现XML Parameter pars ...
- div加边框
一.虚线与实线边框 边框虚线样式:dashed 边框实现样式:solid border:1px dashed #000 代表设置对象边框宽度为1px黑色虚线边框 border:1px solid #0 ...
- Volley网络框架的使用
Volley的特点: 使用网络通信更快.更简单 Get/Post网络请求网络图像的高效率异步请求 可以对网络请求的优先级进行排序处理 可以进行网络请求的缓存 可以取消多级别请求 可以和Activi ...
- SparkConf加载与SparkContext创建(源码阅读四)
sparkContext创建还没完呢,紧接着前两天,我们继续探索..作死... 紧接着前几天我们继续SparkContext的创建: 接下来从这里我们可以看到,spark开始加载hadoop的配置信息 ...
- 本地新建项目提交到github
1.在github上创建项目(可以添加README.md),创建后的地址为 https://github.com/xxx/xxx-demo.git 2.在eclipse上新建个quick-start的 ...