#P17193. [KOI 2026 #2] 搭骰子塔
[KOI 2026 #2] 搭骰子塔
题目描述
相勋有 个正六面体骰子。依次将它们称为第 个骰子、第 个骰子、……、第 个骰子。
每个骰子的六个面上各写有一个 到 之间的整数。同一个骰子任意两个不同的面上所写的数都不同,且任意两个相对的面上所写的数之和恒为 。
相勋打算使用这 个骰子搭建骰子塔。具体过程如下:
- 将全部 个骰子掷到地面上。
- 记录每个骰子顶面所写的数。按照第 个骰子到第 个骰子的顺序,将顶面所写的数记为 。
- 从仍留在地面上的骰子中选择至少一个,在桌面上搭成一座新的塔。可以从地面上拿起骰子,但不能改变骰子的朝向。所选骰子的排列顺序可以任意确定,并且必须将这些骰子全部竖直地叠成一列。此时,任何两个相接触的面上所写的数必须相同。
- 重复步骤 3,直到地面上不再剩下骰子。
例如,搭建骰子塔的过程可以如下进行:
- 相勋将地面上的 个骰子掷出,第 个到第 个骰子的顶面数字依次为 。
- 相勋从地面上选择第 、第 、第 个骰子,然后按照从下到上第 、第 、第 个骰子的顺序搭成一座塔。第 个骰子的底面与第 个骰子的顶面上均写有 ,因此这两个面能够相接触。此外,第 个骰子的底面与第 个骰子的顶面上均写有 ,因此这两个面也能够相接触。
- 相勋选择地面上剩余的第 个骰子,搭成一座仅由一个骰子组成的塔。
- 地面上已没有剩余骰子,因此搭建骰子塔的过程结束。相勋总共搭出了 座塔。
相勋希望合理决定搭塔方式,使最终建成的塔数最少。给定掷出 个骰子后各骰子顶面所写的数,请求出最终塔数的最小值。
输入格式
第一行给出整数 。
第二行依次给出 个以空格分隔的整数 。
输出格式
第一行输出相勋合理决定搭塔方式后,最终能够建成的塔数的最小值。
4
3 3 5 4
2
2
3 4
1
5
1 1 6 1 1
3
提示
限制条件
- 给出的所有数均为整数。
- 对于每个整数 (),
子任务
- ( 分)。
- ( 分)骰子顶面所写的数为 或 。也就是说,对于每个整数 (), 或 。
- ( 分)对于任意两个互不相同的整数 (),顶面写有 的骰子数与顶面写有 的骰子数互不相同。
- ( 分)没有额外限制。
翻译由 ChatGPT-5.6 完成