【题解】[THUPC2018]蛋糕

https://www.luogu.com.cn/problem/P5456

解法

如果一个方块被涂了\(0\)面,相当于恰好\(0\)个维度碰到了边界
如果一个方块被涂了\(1\)面,相当于恰好\(1\)个维度碰到了边界
...
如果一个方块被涂了\(i\)面,相当于恰好\(i\)个维度碰到了边界

那么设\(f[i,j]\)表示只考虑前\(i\)个维度,被涂了\(j\)面的方块的个数

考虑\(i\)个维度,有\(2\)个位置会碰到这个维度的边界,而其他\(a[i]-2\)个位置则没有碰到边界。所以\(f[i,j]=f[i-1,j-1]*2+f[i-1,j]*(a[i]-2)\)

注意到当\(a[i]=1\)时,这个唯一的位置的方块会同时碰到上下边界。相当于多染了\(2\)面。所以此时\(f[i,j]=f[i-1,j-2]\)

代码:https://www.luogu.com.cn/paste/k4ovcxzk

posted @ 2021-10-08 22:11  hzy1  阅读(42)  评论(1编辑  收藏  举报