摘要: 状态 dp[i][j] 表示 第i根柱子,高度为j的最小花费 转移方程 dp( i , j ) = Min { dp( i-1, k ) + | k - j | * C + ( j-a[i] )*( j-a[i]) } 如果我们 枚举 j 和 k, 因为 都小于 100, 时间复杂度也有 O( 10^9 ), 1000 ms也不够. 我们可以把绝对值拆分开来: 当 j >= k 时: dp( i, j ) = Min{ dp( i-1, k ) - k*C + j*c + ( j-a[i])^2 } 当 j <= k 时: dp( i, j ) = ... 阅读全文
posted @ 2013-01-09 18:55 yefeng1627 阅读(214) 评论(0) 推荐(1) 编辑
摘要: 将题目转换题意, 有一个M列的墙, 我们需要 使用 1*2 的小矩形 砌成N层高, 有多少不同的方案数量. 因为只有1*2的砖头, 且只有竖立或者横着放. 那么我们规定 竖立放置的砖头属于 较高的一层, 且 当前点放置砖头则为1,否则为0 那么我们可以得出结论: 对于 I 层 状态 X , 若当前位置为0,则下层必定为1. 则意味着下层必定包含 t = (~X)& Mask 对于 I+1 层 状态 Y, 除了包含 状态 t 之外, 剩下标记为1的 必须两两成对.才可符合状态. 注意 t = (~X)& Mask 这里要记得还要与 总集合MASK相与. 把状态限定在MASK... 阅读全文
posted @ 2013-01-09 12:07 yefeng1627 阅读(224) 评论(0) 推荐(0) 编辑

Launch CodeCogs Equation Editor