1 条题解
-
0
题意概述
我们有一个 的棋盘:
- 每个格子有颜色(1 红色 / 2 黄色)和分数 (可以为负)。
- 左上角 分数为 。
三个机器人 从 出发,每步可以 向下或向右 跳跃。
初始跳跃距离为 。
如果花费 金币,跳跃距离可以变为 之间的整数。跳跃规则:
- 跳到格子得到该格子分数。
- 如果跳之前和跳之后的格子颜色相同,额外获得 分。
- 可以在任意时刻结束游戏(不一定要到右下角)。
- 三个机器人独立,路线可以相同。
最终得分:
$$S = A \times 20\% + B \times 30\% + C \times 50\%. $$获得 RMB。
图书馆与读者部分
图书馆有 本书,编码为 。
有 个读者,每人:- 需求码长度
- 需求码 (无前导 0)
- 如果借不到书,需要 RMB 说服
定义:一个读者被满足,当且仅当图书馆中有某本书 的后 位等于 。
如果读者不被满足,就需要花费 RMB 去说服。
图书馆的总说服费用 = 所有不被满足的读者的 之和。
目标
我们需要通过花费金币 来调整机器人跳跃范围,从而让三个机器人可以走出足够高的得分,使得获得的 RMB 图书馆的总说服费用。
求最小的 ,如果无解输出 。
问题分解
第一步:计算图书馆的总说服费用
对于每个读者 ,检查是否有 。
如果没有,则需要 RMB。
设总说服费用为 。我们需要 。
第二步:计算三个机器人的最大总分
设 表示在跳跃范围 下,机器人 能获得的最大分数(可以随时结束)。
类似地 和 独立最大。那么:
$$S_{\max}(g) = 0.2 \times A_{\max}(g) + 0.3 \times B_{\max}(g) + 0.5 \times C_{\max}(g). $$因为三个机器人独立,且路线可以相同,所以它们可以各自选择自己的最优路径(不一定要相同),因此 就是三者独立最大值的加权和。
所以我们要判断是否存在 使得 。
第三步:对单个机器人求最大得分
这是一个 带权最大路径 问题,但特殊点:
- 跳跃距离是一个范围 ,其中 。
- 每次只能向下或向右。
- 路径可以随时结束(停在某个格子)。
- 额外奖励:如果相邻两格子颜色相同,额外 。
设 表示到达 的最大得分(可以在 结束)。
状态转移:
- 可以从 向下跳 步到达 ,其中 且 。
- 可以从 向右跳 步到达 ,其中 且 。
- 转移时加上 ,并且如果颜色与上一步格子相同,额外 。
初始化 (因为 ,且没有上一步)。
最终该机器人最大得分 = (因为可以随时结束)。
第四步:复杂度与优化
直接 DP 复杂度 (因为每个点要从 个可能的前驱转移), 最大 会超时。
注意到跳跃范围 长度是 ,如果 较小,那么转移来源是 的,不是 。
我们可以优化:
对于每个 ,需要检查:- 从上方 来:,且 。
- 从左方 来:,且 。
因此我们可以维护一个 滑动窗口最大值 结构:
- 对每一列 ,维护从上到下的 在窗口长度 内的最大值。
- 对每一行 ,维护从左到右的 在窗口长度 内的最大值。
这样转移可以 得到最优前驱。
总复杂度 ,可以接受。
第五步:搜索最小的
范围:
- 下界 (不花钱)。
- 上界:由于跳跃距离不能超过 , 且 ,所以 。
我们可以在 范围内 二分 :
- 对每个 计算 。
- 计算 ,判断是否 。
二分 的可行性:
- 如果 增大,跳跃范围 变宽,可达的格子增多,得分不会减少(因为可以走原来的路径,或者走更优路径)。
所以 关于 单调不减,可以二分。
第六步:无解判断
如果在 (最大可能)时, 仍不足以 ,则输出 。
算法步骤总结
-
计算总说服费用
对每个读者检查图书馆是否有匹配的书(用哈希或字典树后缀匹配),累加未满足读者的 。 -
二分
下界 ,上界 。 -
对给定的
- 计算 , 。
- 用滑动窗口 DP 计算 (三者独立,但计算方法相同,可以只算一次最大得分,因为地图一样,只是机器人独立)。
- 计算 并判断是否 。
-
输出最小 或 。
样例解析
样例 1
,计算得 。
时跳跃范围 ,可能无法得到足够高分。
时跳跃范围 ,可以走出 ,,所以 可行。样例 2
棋盘分数有很多负值,即使 最大也无法达到 ,输出 。
复杂度分析
- 计算 :,其中 ,可以 比较。
- 每个 的 DP:,用滑动窗口。
- 二分 : 次检查。
总复杂度 , 可过。
关键点
- 图书馆部分只是用来计算说服费用 ,与棋盘无关。
- 三个机器人独立,可以分别走最优路径,因此 是各自最大值的加权和。
- 跳跃范围单调性 使得可以二分 。
- DP 优化 用滑动窗口维护列和行的最大值,将复杂度从 降为 。
这样就能高效求解。
- 1
信息
- ID
- 5915
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者