jxwzh

导航

我终于悟了p1970 花匠

设dp[i][0/1]前i个中最后为从上向下转移/从下向上转移的最大长度
dp[i][0]=max(dp[i-1][1]+1,dp[i-1][0]);
如果不选的有一个很重要的性质,(os:严重影响我今晚的晚饭)
B:大,S:小
B S B S B S B S ?
1 2 3 4 5 6 7 8 9
对于第8个点,如果不选直接继承dp[7][0]也就是对于前7个,最后从上向下转移的
那对于第9个点有几种可能
1.比8这个点小,所以它同时满足了小于7这个点,那对于dp[7][1]是可行的
2.比8这个点大
{
1.比8这个点大,但是比7这个点小可以满足 B S B这种
2.比8这个点大,也比7这个点大也同样满足 B S B这种
}
所以对于不选的情况,直接继承与它情况相同的前一个点是可行的
如果选的话,从前一个相反的状况转移就可以了

posted on 2025-10-05 18:56  kksc111  阅读(9)  评论(0)    收藏  举报