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 <