AT_cpsco2019_s2_f.Treasure Collector
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
在一个 N×N 的网格上,每个格子里都放着一枚硬币。我们用 (i,j) 表示第 i 行、第 j 列的格子位置。例如,左上角的格子是 (1,1),右上角是 (1,N),左下角是 (N,1),右下角则是 (N,N)。
你是一名擅长驾驭机器人来收集宝藏的寻宝者,决定用这些机器人来收集网格上的硬币。
网格上有 N 个机器人,编号为 1 到 N。你将会得到一个长度为 N 的排列 P,和一个长度为 N 的正整数序列 A。每个机器人 i 的初始位置是格子 (i,Pi)。机器人可以一次最多携带 Ai 枚硬币。
由于一次性收集大量硬币比较困难,因此你打算将所有硬币移动到机器人的初始位置中之一。目标是,让所有的硬币都聚集到某个机器人的初始位置。
每次行动需要支付 1 的代价,并且你可以执行以下操作:
- 选择一个机器人,假设是 i。
- 指定一个方向(上下左右之一),以及一个不超过 Ai 的正整数 x,并告知机器人。
- 机器人会按这个方向移动到相邻格子,并且如果在途中遇到硬币,就拾取硬币;这个过程将持续,直到机器人拾取了 x 枚硬币。
- 拾取完硬币后,机器人将沿原路返回它的初始位置 (i,Pi),并且将所有拾取的硬币放在那里。
这些机器人已经比较老旧,容易误操作,因此不能让机器人进入其他机器人已经经过的格子,或者试图移出网格范围。
请计算,最小需要多少代价,才能将所有硬币都汇集到某个初始位置。
输入格式
输入以以下形式给出:
N P1 P2 … PN A1 A2 … AN
输出格式
输出将所有硬币聚集到某个初始位置所需的最小代价。
输入输出样例
输入#1
3 1 2 3 1 1 2
输出#1
4
输入#2
3 2 3 1 2 1 2
输出#2
4
输入#3
10 7 10 6 1 8 2 9 5 4 3 2 3 3 9 1 9 5 8 1 7
输出#3
35
说明/提示
- 2≤N≤80
- 1≤Pi≤N
- P 是 1 到 N 的一个排列
- 1≤Ai≤N−1
- 所有输入均为整数
样例解释 1
可以通过以下 4 次操作达成目标:
- 机器人 1 向下移动,x=1
- 机器人 3 向左移动,x=2
- 机器人 2 向上移动,x=1
- 机器人 3 向上移动,x=2
样例解释 2
可以通过以下 4 次操作达成目标:
- 机器人 1 向下移动,x=2
- 机器人 3 向上移动,x=2
- 机器人 2 向上移动,x=1
- 机器人 2 向下移动,x=1
本翻译由 AI 自动生成
输入解题思路,AI测评打分。不知道怎么写?