DP题目的特点

  • 数据较小,至少有一维是可以接受的,比如每一步的决策小于3,总数小于1000等等
  • 每一步的答案可以由之前的答案得到,比如数字三角形

DP题目的大致做法

设DP数组

  • 明确DP数组的含义,保证每次求解的答案都是这个含义,不然就可能出错
    (这也是我之前的一大误区)

分类讨论

  • 明确有几种决策方案,明确这一步的答案是怎么推断出来的(非常重要!!!)

接下来编写代码就行了

举例:迎新赛M题

  • 题目传送门:

ZJUTOJ | 2024ZJUT迎新赛-决赛-M. 三色小屋

题目理解:

  • 首先发现每一步的方案数可以接受,并且这一步的答案只由上一步转移而来,所以可以使用DP
  • 每个位置只能填R/G/B三种颜色,而且之和上一步和相邻的颜色有关,几种方案互不影响,符合动态规划的特点

    分类讨论:

  • 分为两大类,因为开头要初始化,所以单独讨论

DP概率题

求期望的几个重要公式

  • 上面两个说明了期望的线性关系,下面两个说明了期望的独立性