u:
差分,随便维护一下就好了
v:
状压+记忆化搜索
记录剩余的字符串,用$ hashmap $优化一下就好了
w:
树形dp
设二元组$ (i,j) $表示这棵子树在这个情况下最小翻转次数以及最小总长度
设$ dp[i][0/1] $表示以i为根的子树是/否有向上的一条伸出的边
分这个点上面的边是不是必须翻转/必须不翻转/可以翻转来讨论转移就好了
差分,随便维护一下就好了
状压+记忆化搜索
记录剩余的字符串,用$ hashmap $优化一下就好了
树形dp
设二元组$ (i,j) $表示这棵子树在这个情况下最小翻转次数以及最小总长度
设$ dp[i][0/1] $表示以i为根的子树是/否有向上的一条伸出的边
分这个点上面的边是不是必须翻转/必须不翻转/可以翻转来讨论转移就好了
转载于:https://www.cnblogs.com/mikufun-hzoi-cpp/p/11602128.html