殷勤斑马

文章
9
资源
0
加入时间
3年1月8天

Codeforces 487b Strip, dp + RMQ(经典)

题意:有一个长度为n的数列,问是否能把这个数列切成连续的几段,使得 1.每一段长度大于等于l;2.每一段中的最大值和最小值之差小于等于s。如果能输出能切成的最小的段数,不能输出-1。思路:非常经典的dp题目,假设dp[i]表示a1...aia_1...a_i这个序列能切成的最小段数,如果不能dp[i] = INF。现在问题是 1.如何找到状态转移方程。考虑如果l = 3, s = 1,如果ai