题解:P11500 [ROIR 2019 Day 2] 间歇训练

· · 题解

DP

题目重点,需要满足的条件:

  1. 总负荷为 n
  2. 第一天的负荷为 k
  3. 相邻两天的负荷不同,即 a_i \neq a_{i+1}
  4. 负荷的增加和减少交替进行:
    • 如果 a_i < a_{i+1},则 a_{i+1} > a_{i+2}
    • 如果 a_i > a_{i+1},则 a_{i+1} < a_{i+2}

      DP 思路

      设计状态:

  5. f1[i][j]: 总负荷为 i,最后一天的负荷为 j,且前一天的负荷比倒数第二天的负荷小,即最后一次变化为增加
  6. f2[i][j] 总负荷为 i,最后一天的负荷为 j,且前一天的负荷比倒数第二天的负荷大,即最后一次变化为减少

递推边界: