AGC 26 D Histogram Coloring

题目

将柱子的高度离散化$\DeclareMathOperator{\dp}{dp}$

设第 $i$ 根柱子实际高度是 $h_i$,离散化之后的高度是 $g_i$;第 $i$ 高的高度是 $H_i$,第 $i$ 段的长度为 $c_i$,即 $c_0 = H_0,c_i = H_i - H_{i-1} \quad i \ge 1$

设有三根柱子,高度分别为 $1, 4, 3$,则 $h = [1, 4, 3]$,$g = [0, 2, 1]$,$ H = [1, 3, 4]$,$c = [1, 2, 1]$ 。

$\dp[i][j]$ 表示第 $i$ 根柱子上「上下相邻的两块同色」最早出现在第 $j$ 段的方案数。

第 $i$ 根柱子上未出现相邻两块同色的情况用状态 $\dp[i][g_i+1]$ 表示

转移方程

$\dp[i][j]$

  1. $g_{i-1} \ge j$:$\dp[i][j] = \dp[i-1][j] \times 2^{\max(0, h_i - h_{i-1})}$
  2. $g_{i-1} < j$:$\dp[i][j] = \dp[i-1][g_{i-1} + 1] \times 2 \times (2^{c_j} -1) \times 2^{h_{i} - H_{j}}$

边界条件

$\dp[0][0] = (2^{c_0} - 2) \times 2^{h_0 - H_0}$

$\dp[0][j] = 2 \times (2^{c_j} - 1) \times 2^{h_0 - H_j} \quad 1 \le j \le g_0$

$\dp[0][g_0 + 1] = 2$

$\dp[i][g_i + 1]$

  1. $g_{i-1} \le g_i$:$\dp[i][g_i+1] = 2 \times \dp[i-1][g_{i-1} + 1]$
  2. $g_{i-1} > g_i$:$\dp[i][g_i + 1] = 2 \times \sum_{ g_i < j \le g_{i-1} + 1} \dp[i-1][j]$

转载于:https://www.cnblogs.com/Patt/p/9312043.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值