题目大意
点这里 感觉这题的题目描述得改改了。
思路
一遇到走路求最大值的问题我们首先会想到 dp。显然,这题不例外。让我们来探讨一下吧。
STEP1. 定义 dp 数组
我总结出橙黄的 dp 基本上都是问啥设啥。
这题也不例外。我们可以设 d p i , j dp_{i,j} dpi,j 表示 FJ 走到路径的第 i i i 个点,Bessie 走到路径的第 j j j 个点时候最少消耗的能量。
好,就是这样。请读者们别急,让我们继续。
STEP2. 设计状态转移
橙黄题的状态转移基本上都是很基础、很简单的。
这题仍然不例外。
我们来 分情况讨论 (为了简便这里把 FJ 看成 F,把奶牛看成 B):
- F走,B不走,即 d p i − 1 , j dp_{i - 1, j} dpi−1,j。
- F走,B走,即 d p i − 1 , j − 1 dp_{i - 1, j - 1} dpi−1,j−1。
- F不走,B走,即 d p i , j − 1 dp_{i, j - 1} dpi,j−1。
- F不走,B也不走,这种情况由于不走还不如走,所以去掉。
题目说要取最小的能量值,所以取 min \min min。
状态转移方程:$dp_{i, j} = \min(dp_{i - 1, j - 1}, dp_{i - 1, j}, dp_{i, j - 1}) + $ 从 i 到 j 消耗的能量