P4059 [Code+#1]找爸爸

妙啊。

首先想了一种离谱的方法。

\(f(i,j)\)\(i\)\(j\)已经匹配时的最大收益。

那么就要知道上一个哪两个匹配,然后它们中间就一定是空格。然而这个时间复杂度为\(O(n^4)\)而且还不知道怎么分配空格。

我们考虑把分配空格交给dp来做。

\(f(i,j,0/1/2)\)表示前i位和前j位已经使用时,最后一个匹配位置的状态为11/01/10时的最大收益,因为不可能两个都是空格。

于是我们可以看做,第一个空格的收益为-A,之后连续的每一个收益为-B,可以直接从上一个位置转移过来。

posted @ 2021-10-13 11:02  lei_yu  阅读(41)  评论(0编辑  收藏  举报