多米诺骨牌
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
育华多米诺
题目描述
育华学校开展多米诺骨牌趣味挑战活动,准备了 个特制多米诺骨牌,编号从 到 。每个多米诺骨牌 有对应的尺寸 。
活动规则是挑选两个或更多多米诺骨牌,按从左到右顺序排列好,要满足这些条件:
- 最左边摆放的必须是编号为 的多米诺骨牌(象征活动起点 )。
- 最右边摆放的必须是编号为 的多米诺骨牌(象征活动终点 )。
- 当推倒最左边的编号为 的多米诺骨牌让它向右倒时,最右边编号为 的多米诺骨牌最终也得跟着向右倒。
多米诺骨牌倒下传递规则:当多米诺骨牌 向右倒时,要是紧挨着它右边的多米诺骨牌 尺寸满足 ,那骨牌 会被带动也向右倒。
现在要判断对于每组骨牌,是否存在符合条件的排列方式。若存在,算出需要排列的多米诺骨牌的最少数量;若不存在,就输出 -1
。本次挑战有 组不同的骨牌配置,得逐个处理求解。
输入格式
输入从标准输入按如下格式给出,其中 case_i
代表第 组挑战用例:
T
case_1
case_2
...
case_T
每组挑战用例的格式是:
N
S_1 S_2 ... S_N
输出格式
输出 行,第 行对应第 组挑战用例的结果:
- 要是存在符合条件的排列,输出所需多米诺骨牌的最少数量;
- 若不存在,输出
-1
。
样例说明(以样例输入 1 为例)
样例输入 1
3
4
1 3 2 5
2
1 100
10
298077099 76263489 44093234 59197620 725560241 589990757 965885936 633331126 589925214 978729735
样例输出 1
4
-1
3
样例 2
见选手文件中的 domino/domino2.in
与 domino/domino2.ans
。
解释(第一组挑战用例)
把多米诺骨牌按 1 → 3 → 2 → 4
的顺序排列,能满足所有要求:
- 最右边是编号 (对应规则里“最左侧是 ”,这里 )。
- 最左边是编号 。
- 推倒最左边的 时:
- 右边是 ,因为 ,所以 会被带倒。
- 右边是 ,因为 ,所以 会被带倒。
- 右边是 ,因为 ,所以 会被带倒。
要是尝试用 3 个或更少骨牌排列,没法满足条件。所以,最少需要 4 个骨牌。
数据规模
数据分类 | 约束条件(每组挑战用例) |
---|---|
30% 数据 | , |
60% 数据 | , |
100% 数据 | , , |