#P15848. [NOISG 2026 Finals] Famished Cats
[NOISG 2026 Finals] Famished Cats
题目描述
在一年一度的全国爱猫日庆祝活动中成功阻止了猫的灭绝后,猫 Ket 现在收到了来自食猫王国的饥饿投诉。因此,Ket 被委派去运送食物,以防止它们再次诉诸同类相食。
这个猫王国可以被建模为一条从西向东延伸的漫长道路。道路的西端有一个食物银行。食物银行以东有 间猫屋,编号从 到 。保证 是 偶数。第一间房子位于食物银行以东 公里处。对于 ,第 间房子位于第 间房子以东 公里处。
Ket 将驾驶一辆送货车向这些房子运送食物。卡车从食物银行出发,初始拥有 单位的燃料。1 单位燃料允许 Ket 驾驶他的卡车沿道路行驶 1 公里。
第 间房子有 单位的燃料可供卡车使用。卡车拥有无限的燃料存储空间,并且只在燃料耗尽时才会停下。卡车离开后无需返回食物银行。
:::align{center}
:::
此外,Ket 拥有一根魔杖。挥动一次魔杖,他可以 交换 第 间和第 间猫屋中储存的燃料量。只有当两个房子中的燃料都尚未被使用时,才能进行此交换。请帮助 Ket 找到他使用任意次数交换后能够到达的最远房子的索引 。同时,请帮助 Ket 找到到达房子 所需的最小交换次数 。
你可以参考样例测试 #1 以获得更详细的解释。
输入格式
你的程序需要从标准输入读取数据。
输入的第一行包含两个由空格分隔的整数 和 。
输入的第二行包含 个由空格分隔的整数 。
输入的第三行包含 个由空格分隔的整数 。
输出格式
你的程序需要向标准输出写入数据。
在一行中输出 两个 由空格分隔的整数。第一个整数应为 ,即 Ket 能到达的最远房子的索引,接着是 ,即到达房子 所需的最小交换次数。
6 1
1 1 3 1 1 6
1 1 1 4 3 2
5 1
6 5
3 8 3 1 4 1
2 7 1 6 2 7
6 1
6 2
2 24 25 40 5 11
4 12 14 16 20 30
3 2
6 10
3 6 3 7 8 6
4 3 1 7 1 6
5 1
提示
样例测试 #1 解释
:::align{center}
:::
有一个食物银行,其东边有 间房子。Ket 的卡车以 单位燃料出发,行驶到房子 。然后他在房子 补充燃料,并行驶到房子 。此时,Ket 最优的做法是使用他的魔杖交换房子 和房子 的燃料量,这使他能够补充 单位燃料并到达房子 。随后,他可以在前往接下来两间房子的途中补充 单位燃料,并分别在房子 和房子 (由于之前的交换)补充 单位和 单位燃料。
之后他将剩下 单位燃料,这使他无法前往房子 ,因为那需要 单位燃料。由于 Ket 在到达房子 之前耗尽了燃料,他只能到达房子 。此外,他必须使用魔杖进行一次交换。因此, 且 。
子任务
对于所有测试用例,输入数据满足以下限制:
- 是偶数。
- 对于所有 ,有
- 对于所有 ,有
你的程序将在满足以下限制的输入实例上进行测试:
| 子任务 | 分数 | 额外约束条件 |
|---|---|---|
| 0 | 样例测试用例 | |
| 1 | 7 | 对于所有 , 对于某个常数 成立 |
| 2 | 12 | |
| 3 | 14 | 是非递减的(对于所有 ,有 ) |
| 4 | 19 | |
| 5 | 21 | |
| 6 | 27 | 无额外约束 |
注意:一个数 的绝对值,记作 ,是 与 在数轴上的距离的非负数。例如, 且 。
翻译由 DeepSeek V3.2 完成