LA 7735 - Pocket Cube

LA 7735 是一道模拟题,要求根据二阶魔方每个面的状态判断是否能在一步内还原。分析中提到可以通过模拟魔方的六种转动情况来判断,并指出题目数据可能存在错误,需要额外注意。
摘要由CSDN通过智能技术生成

LA 7735 - Pocket Cube

原题链接

题目类型:模拟
题意

给定一个二阶魔方每个面的状态,求能否在一步内将魔方还原。

分析

根据题目描述得出每个颜色在输入得数组中得下标。然后就是模拟魔方转动的过程并判断是否还原。思考后可以发现,只有六种转动的情况和一种不转的情况(顺时针转动前面的面等价于逆时针转动后面的面),所以以枚举每种情况进行判断。最好用纸折一个立方体,然后将每个颜色对应的下标写上去调参更方便、准确。

PS:题目数据貌似有问题,输入的 N 应该比实际的测试数据多一个,用 Java 不做处理是过不了的

代码
static int[] top = new int[4];
static int[] front = new int[4];
static int[] bottom = new int[4];
static int[] back = new int[4];
static int[] left = new int[4];
static int[] right = new int[4];
static boolean ok;

public static void solve() throws IOException {
   
    for (int i = 0; i < 4; i++) if (hasNext()) top[i] = nextInt();
    for (int i = 0; i < 4; i++) if (hasNext()) front[i] = nextInt();
    for (int i = 0; i <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值