ZJNU 1196 - 三阶魔方【模拟题】——高级
大模拟,空想很容易把面和面之间的关系搞混
所以这时候需要自己找一个正方体(实在不行长方体代替)跟着图把每个面正方向标出来
然后模拟6种操作分别会对哪些块进行操作
对于储存数据的想法是,对输入输出进行分块,以c[i][j]表示是第i个面的第j块
具体参照下文输入输出内的
for(i=;i<;i++)
for(j=;j<;j++){
scanf("%s",cd);
c[j/][j%+i*]=cd[];
}
与
for(i=;i<;i++)
for(j=;j<;j++)
printf("%c%c",c[j/][j%+i*],j<?' ':'\n');
#include<stdio.h>
#include<string.h>
char c[][],tmp[];
int getid(char c){
switch(c){
case 'W':return ;
case 'O':return ;
case 'R':return ;
case 'B':return ;
case 'G':return ;
case 'Y':return ;
}
}
void change(char cc){
char d1,d2,d3;
if(cc=='W'){//以O面为缓存面
d1=c[][];
d2=c[][];
d3=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=d1;
c[][]=d2;
c[][]=d3;
}
else if(cc=='O'){//以W面为缓存面
d1=c[][];
d2=c[][];
d3=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=d1;
c[][]=d2;
c[][]=d3;
}
else if(cc=='R'){//以O面为缓存面
d1=c[][];
d2=c[][];
d3=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=d1;
c[][]=d2;
c[][]=d3;
}
else if(cc=='B'){//以G面为缓存面
d1=c[][];
d2=c[][];
d3=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=d1;
c[][]=d2;
c[][]=d3;
}
else if(cc=='G'){//以B面为缓存面
d1=c[][];
d2=c[][];
d3=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=d1;
c[][]=d2;
c[][]=d3;
}
else if(cc=='Y'){//以G面为缓存面
d1=c[][];
d2=c[][];
d3=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=c[][];
c[][]=d1;
c[][]=d2;
c[][]=d3;
}
int id=getid(cc);
d1=c[id][];
c[id][]=c[id][];
c[id][]=c[id][];
c[id][]=c[id][];
c[id][]=d1;
d1=c[id][];
c[id][]=c[id][];
c[id][]=c[id][];
c[id][]=c[id][];
c[id][]=d1;
}
int main(){
char cd[];
int i,j,len;
for(i=;i<;i++)
for(j=;j<;j++){
scanf("%s",cd);
c[j/][j%+i*]=cd[];
}
scanf("%s",tmp);
len=strlen(tmp);
for(i=;i<len;i++)
change(tmp[i]);
for(i=;i<;i++)
for(j=;j<;j++)
printf("%c%c",c[j/][j%+i*],j<?' ':'\n'); return ;
}
ZJNU 1196 - 三阶魔方【模拟题】——高级的更多相关文章
- 【ACM】魔方十一题
0. 前言打了两年的百度之星,都没进决赛.我最大的感受就是还是太弱,总结起来就是:人弱就要多做题,人傻就要多做题.题目还是按照分类做可能效果比较好,因此,就有了做几个系列的计划.这是系列中的第一个,解 ...
- NOIP模拟赛 高级打字机
[题目描述] 早苗入手了最新的高级打字机.最新款自然有着与以往不同的功能,那就是它具备撤销功能,厉害吧. 请为这种高级打字机设计一个程序,支持如下3种操作: 1.T x:在文章末尾打下一个小写字母x. ...
- poj 1008:Maya Calendar(模拟题,玛雅日历转换)
Maya Calendar Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 64795 Accepted: 19978 D ...
- poj 1888 Crossword Answers 模拟题
Crossword Answers Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 869 Accepted: 405 D ...
- CodeForces - 427B (模拟题)
Prison Transfer Time Limit: 1000MS Memory Limit: 262144KB 64bit IO Format: %I64d & %I64u Sub ...
- sdut 2162:The Android University ACM Team Selection Contest(第二届山东省省赛原题,模拟题)
The Android University ACM Team Selection Contest Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里 ...
- 全国信息学奥林匹克联赛 ( NOIP2014) 复赛 模拟题 Day1 长乐一中
题目名称 正确答案 序列问题 长途旅行 英文名称 answer sequence travel 输入文件名 answer.in sequence.in travel.in 输出文件名 answer. ...
- UVALive 4222 Dance 模拟题
Dance 题目连接: https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&pag ...
- cdoj 25 点球大战(penalty) 模拟题
点球大战(penalty) Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/2 ...
随机推荐
- 六、React 键盘事件 表单事件 事件对象以及React中的ref获取dom节点 、React实现类似Vue的双向数据绑定
接:https://www.cnblogs.com/chenxi188/p/11782349.html 事件对象 .键盘事件. 表单事件 .ref获取dom节点.React实现类似vue双向数据绑定 ...
- chrome浏览器安装vue调试器vue-devtools
chrome浏览器安装vue调试器vue-devtools https://blog.csdn.net/zhangjnwei/article/details/76693053
- Kali链接Xshell和更新源
一.Xshell首次链接kali系统中的ssh Xshell:帮助我们去连接各种服务平台,方便管理服务器,链路可以加密处理(ssh/vsftp) 1.开启kali中的ssh服务,service ssh ...
- UVA - 12563 Jin Ge Jin Qu hao(劲歌金曲)(0-1背包+滚动数组)
题意:在KTV唱歌剩下的t秒时间内,决定选最爱的n首歌中的一部分歌,在时间结束之前唱一首时长678秒的<劲歌金曲>,使得唱的总曲目尽量多(包括<劲歌金曲>),在此前提下尽量晚的 ...
- js 获取时间对象
1.当前系统时间 var date=new Date(); 2.字符串转时间对象 var date=new Date("2018-01-01"); 3.获取年份: var y ...
- 【MySQL基础打卡(一)】查询语句项目作业
文章目录 1.查找email表中重复的电子邮箱 1.1 创建email数据表 1.2 找出重复Email 2.查找大国家 2.1 创建数据表 2.2 查找大国家 对于安装MySQL比较恐惧,所以想在虚 ...
- bugku-Web 求getshell
求getshell 上传一个png文件发现提示My name is margin,give me a image file not a php 然后也尝试上传php文件,但是依然不行,这里显然对文件类 ...
- 高性能集群软件keepalived
Keepalived介绍 以下是keepalive官网上的介绍.官方站点为http://www.keepalived.org. Keepalived is a routing sof ...
- 大数据高可用集群环境安装与配置(02)——配置ntp服务
NTP服务概述 NTP服务器[Network Time Protocol(NTP)]是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精 ...
- HTML与CSS结合的四种方式
HTML与CSS结合的四种方式: 方式一:每个标签加一个属性: 例如:<div style="background-color:red; color: green"> ...