
DP套DP
Lynstery
一只蒟蒻
展开
-
[DP套DP] HDU5079: Square
题意给出一个n*n的网格,每个格子一开始都是黑的,且有些格子是损坏的。 现在可以任意选择一些非损坏格子染成白色。定义一个染色方案的优美度为白色最大子正方形的边长。 对于每个i=0~n,求优美度恰为i的染色方案。 n<=10题解显然是DP套DP。 首先思考最大子正方形这个全局的东西比较难用一个较简单的状态直接体现出来。 所以就分开来做,考虑容斥,如果我们求出了ans[i]表示最大子正方形边长原创 2017-06-28 21:38:43 · 890 阅读 · 2 评论 -
[DP套DP] UOJ#141. 【UER #4】量子态的棋盘
题意 n,m<=10 K<=1e+18题解这个小球数很大,但是注意到如果落在某个网格的小球数为偶数,必然是一半往上一半往下,与格子权值无关,只有当小球数为奇数的时候,最后一个小球的走向才和格子权值有关。 所以我们先推一趟,把不确定走向的小球留在那个位置。这样最多就只有n*m个球了。 然后考虑轮廓线DP,记下这里有几个小球从这个边界位置滚下。 这个状态数的数量比较玄学,反正就是能过的。 如何原创 2017-06-29 14:21:23 · 735 阅读 · 1 评论 -
[DP套DP] BZOJ3864: Hero meet devil
题意给出一个长度为n的基因序列S(仅包含字母ACGT的串)和一个数m。 对于每个x=0~n,求有多少个长度为m的基因序列T满足LCS(S,T)=x。 n,m<=15题解外层:f(i,g)f(i,g) 表示T考虑到前i位,状态为s的方案数。 这个内层的状态g是一个长度为n的序列,表示LCS(i,1~n)这个的第二维。 可以想到这个序列是不降的且每次最多加1,所以只需要差分后用一个二进制数保存即原创 2017-06-27 21:36:30 · 714 阅读 · 0 评论