1 条题解
-
0
自动搬运
来自洛谷,原作者为

Perta
broken tower搬运于
2025-08-24 22:55:45,当前版本为作者最后更新于2024-03-20 09:32:46,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
拿球的总时间是固定的,这个可以不考虑。
一个朴素的想法是,设 表示已经拿了 的球,现在在第 个球的位置所用的最短时间,转移是朴素的,可以获得 24 分。
我们可以发现一个比较显然的性质:位于 同一侧的球,离 较远的球必然先于较近的被拿。
那么实际上有效状态 只有 个。设 表示拿了编号范围 的球,现在在第 个球的位置所需的最短时间,转移是朴素的。初始有 $f_{1,N,0}=\lvert S-X_1\rvert,f_{1,N,1}=\lvert S-X_N\rvert$。
设 左右两边的小球编号分别为 (也可能只有一个),所需时间为 $\min(f_{p_1,p_1,0}+(N+1)\lvert X_{p_1}-G\rvert,f_{p_2,p_2,0}+(N+1)\lvert X_{p_2}-G\rvert)$。
对于多次询问,我们不妨直接设另一个数组 ,含义与 相同,初始有 ,那么所需时间为 $\min(\lvert S-X_1\rvert+f_{p_1,p_1,0}+(N+1)\lvert X_{p_1}-G\rvert,\lvert S-X_N\rvert+g_{p_2,p_2,0}+(N+1)\lvert X_{p_2}-G\rvert)$。 可以预处理,时间复杂度为 ( 带不带 都行)。
看起来似乎没有优化空间了?
注意到 。若去重后不同的球的位置有 个,在最理想的情况下,所需的时间也得是 (每捡一个球后走一米)。若理恵能完赛,至少要求 ,也就是说 时答案全是
No。去重不影响我们的算法正确性,时间复杂度 (最后记得加上拿球的总时间 )。
Code,你怎么知道我 带了个 。
- 1
信息
- ID
- 9856
- 时间
- 1500ms
- 内存
- 1024MiB
- 难度
- 6
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者