请问如何做dp题

学术版

Michael2012 @ 2024-11-28 19:52:18

由于本人是个蒟蒻)导致有的时候dp状态设计是错误的,及转移方程推不出来(不可作)。然而我一直认为是可作的导致一直推转移方程,然后就挂掉了。

所以如何判断一个dp状态设计是可作的,如何尽量避免设计出不可作的dp状态设计?


by SSqwq_ @ 2024-11-28 19:54:05

@Michael2012

先写爆搜,再记忆化。

然后你就会发现传进去的参数是 dp 状态。

然后把递归扔掉,优化。然后做完了。


by SSqwq_ @ 2024-11-28 19:55:07

数数类 dp 不能这么做。可以试试草稿纸写写画画,NOIP T1 如果考 dp 不会难的。


by Vector_Li @ 2024-11-28 19:58:18

@Michael2012 猜测 + 证明,如果您想到一个转移,证明它是对的,再去实现

DP 绝对没有模板,多训练


by Michael2012 @ 2024-11-28 19:58:52

@SSqwq_ 感谢!


by Wzhone @ 2024-11-28 20:08:33

@SSqwq_

先看数据范围, 反推时间复杂度;

算出大概的参数数量&数量级,找出哪些东西大概要进时间复杂度;

找到这个式子和答案的关联;

考虑每个式子之间的决策到底是什么(其实dp就是很多段的暴力拼凑)

然后就差不多了


by mayike @ 2024-11-28 20:13:40

@Michael2012 当然也有很套路的dp状态,只有做过那类题才会的


|