首页 > 试题广场 >

附加题

[编程题]附加题
  • 热度指数:1879 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
二阶魔方又叫小魔方,是2*2*2的立方形结构。每一面都有4个块,共有24个块。每次操作可以将任意一面逆时针或者顺时针旋转90°,如将上面逆时针旋转90°操作如下。

Nero在小魔方上做了一些改动,用数字替换每个块上面的颜色,称之为数字魔方。魔方上每一面的优美度就是这个面上4个数字的乘积,而魔方的总优美度就是6个面优美度总和。
现在Nero有一个数字魔方,他想知道这个魔方在操作不超过5次的前提下能达到的最大优美度是多少。
魔方展开后每一块的序号如下图:

输入描述:
输入一行包含24个数字,按序号顺序给出魔方每一块上面的数字。所有数大小范围为[-100,100]。


输出描述:
输出一行包含一个数字,表示最大优美度。
示例1

输入

2 -3 -2 3 7 -6 -6 -7 9 -5 -9 -3 -2 1 4 -9 -1 -10 -5 -5 -10 -4 8 2

输出

8281
头像 sunn4room
发表于 2021-05-20 09:08:19
注释已经很详细了 import java.util.*; public class Main { /** * 记录三种旋转需要变动的下标,共三组下标 * 每组下标里,每4个下标形成一个轮回 */ private static int[][] map = 展开全文
头像 王海波201804220024914
发表于 2022-03-03 21:18:38
采用回溯法,算个上5步都不操作,绕三个轴的顺逆时针操作一共有7中旋转方法,一共有5步,每一步都有7种选择,递归每一种选择的结果。主要卡再魔方的旋转上面,采用暴力法把每一种旋转处理掉。 #include <stdio.h> enum { NO_ROATE = 0, X_CLOCKWI 展开全文
头像 rainbowsea_1
发表于 2022-07-05 15:35:36
#include <bits/stdc++.h> using namespace std; typedef long long ll; ll a[30]; ll ans = LONG_L 展开全文
头像 重生之我要当分子
发表于 2025-01-01 16:03:09
解题思路 这是一个二阶魔方旋转问题。需要通过模拟旋转操作,找到最多5次旋转后能达到的最大优美度。 关键点: 记录每种旋转操作的位置变化 使用递归尝试所有可能的旋转组合 计算每个状态的优美度 需要考虑所有可能的旋转序列 算法步骤: 初始化6种基本旋转规则 递归尝试每种旋转操作 计算每次旋转后的优 展开全文
头像 街角式,..爱念
发表于 2023-02-05 15:00:26
#include <array> #include <climits> #include <cstdio> #include <iostream> #include <vector> using namespace std; // 64 展开全文
头像 17c89
发表于 2023-12-07 19:10:29
import java.util.Scanner; public class Main { private static int max = 0; private static int[] nums = new int[24]; public static void ma 展开全文
头像 理塘_丁真
发表于 2022-06-30 17:10:27
哥们在这跟你coding #include<iostream> #include<vector> using namespace std; int getVal(vector<int> &magic){ &nbs 展开全文