【刷题笔记】Placing Squares

Placing Squares

题解

拍死脑袋也想不出来啊。

敲黑板
\(x^2\) 的组合意义,就是在一个长为 \(x\) 的区间内放小球(一个黑色,一个白色,可以重叠)的方案数。

这样题目就转化为了在一个序列内插板,每两个板之间放两个小球的方案数。
这么转化可以将难以处理的平方代价转化掉,可容易 DP,也更容易优化。

考虑 DP:
\(f_{i,j}\) 表示看到前 \(i\) 个格子,最近的板之后已经放了 \(j\) 个小球。
若第 \(i-1\)\(i\) 之间可以插板:

  • \(f_{i,0} = f_{i - 1,2}(放隔板) + f_{i-1, 0}(不放隔板)\)
  • \(f_{i,1} = 2\times f_{i-1, 2}(放隔板,放球)+ 2\times f_{i-1, 0}(不放隔板,放球)+ f_{i-1,1}(不放隔板,不放球)\)(系数 \(2\) 表示放一个小球有两种方案,放黑球或白球)
  • \(f_{i,2} = f_{i-1, 2}(不放隔板,不放球)+ f_{i-1,0}(不放隔板,放俩球)+ f_{i-1,1}(不放隔板,放一球)+ f_{i - 1, 2}(放隔板,放俩球)\)

若第 \(i-1\)\(i\) 之间不可以插板:

  • \(f_{i,0} = f_{i-1, 0}(不放隔板)\)
  • \(f_{i,1} =2\times f_{i-1, 0}(不放隔板,放球)+ f_{i-1,1}(不放隔板,不放球)\)(系数 \(2\) 表示放一个小球有两种方案,放黑球或白球)
  • \(f_{i,2} = f_{i-1, 2}(不放隔板,不放球)+ f_{i-1,0}(不放隔板,放俩球)+ f_{i-1,1}(不放隔板,放一球)\)

可以设计两个矩阵 \(A,B\) 矩阵快速幂即可。

注意,矩阵不要忘了全置为 \(0\)

posted @ 2025-11-12 15:03  GuoSN0410  阅读(7)  评论(0)    收藏  举报