[ROIR 2022 Day 1] 跳跃机器人
You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.
题目背景
翻译自 ROIR 2022 D1T2。
某公司正在开发一种跳跃机器人。为了测试机器人,他们在一个多边形平台上设置了一个由 个特殊平台组成的环形路线,平台从 到 编号。第 个平台与 个平台之间的距离为 ,最后一个平台与第一个平台之间的距离为 (假设长度分别为 的边可以组成一个 边形)。
机器人配备了人工智能,在测试过程中学习跳得更远。在任何时刻,机器人通过一个整数 来表示它的灵敏度。如果 大于等于 ,机器人可以从平台 跳到平台 ;同样地,如果 大于等于 ,机器人可以从最后一个平台跳到第一个平台。每次跳跃后,机器人的灵敏度增加 。
题目描述
机器人的开发人员选择一个平台作为起始平台。如果机器人可以完成 次跳跃,回到原来的平台,他们认为实验是成功的。开发人员需要确定机器人的最小起始灵敏度是多少,并选择哪个平台作为起始平台。
输入格式
第一行包含一个整数 。
第二行包含一个整数 。
- 如果 ,则第三行包含 个整数 ,意义见题目背景。
- 如果 ,则第三行包含一个整数 ,以及三个整数 。第四行包含 个整数 。此时距离值 根据以下公式计算:
- 如果 ,则 。
- 如果 ,则 $d_i = ((x \times d_{i−2} + y \times d_{i−1} + z) \bmod 10^9) + 1$。
输出格式
输出两个整数,即最小允许的起始灵敏度 和可用于放置机器人的起始平台编号。如果有多个最小起始灵敏度对应的起始平台,可以输出任意一个。
5
1
3 7 4 2 5
4 3
10
2
5 1 2 3
1 2 3 4 5
653 1
提示
样例说明:
在第二个示例中,距离数组为 。
根据公式计算 到 的值:
- $d_6 = ((1 \cdot d_4 + 2 \cdot d_5 + 3) \bmod 10^9) + 1 = ((1 \cdot 4 + 2 \cdot 5 + 3) \bmod 10^9) + 1 = 18$;
- $d_7 = ((1 \cdot d_5 + 2 \cdot d_6 + 3) \bmod 10^9) + 1 = ((1 \cdot 5 + 2 \cdot 18 + 3) \bmod 10^9) + 1 = 45$;
- $d_8 = ((1 \cdot d_6 + 2 \cdot d_7 + 3) \bmod 10^9) + 1 = ((1 \cdot 18 + 2 \cdot 45 + 3) \bmod 10^9) + 1 = 112$;
- $d_9 = ((1 \cdot d_7 + 2 \cdot d_8 + 3) \bmod 10^9) + 1 = ((1 \cdot 45 + 2 \cdot 112 + 3) \bmod 10^9) + 1 = 273$;
- $d_{10} = ((1 \cdot d_8 + 2 \cdot d_9 + 3) \bmod 10^9) + 1 = ((1 \cdot 112 + 2 \cdot 273 + 3) \bmod 10^9) + 1 = 662$。
本题使用捆绑测试。
子任务 | 分值 | 特殊性质 |
---|---|---|
且保证从第一个平台开始跳是最佳选择 | ||
且保证从第一个平台开始跳是最佳选择 | ||
对于 的数据,。当 时 ,当 时 ,,。
注:本题的算法标签部分参考了官方题解中用到的解法。
1125集训
- Status
- Done
- Rule
- IOI
- Problem
- 5
- Start at
- 2024-11-25 17:30
- End at
- 2024-11-25 21:30
- Duration
- 4 hour(s)
- Host
- Partic.
- 24