想到了递推,但是递推给推错了,我的思路是f[i,j]表示前i个连续放j个骨牌的不美观的排列个数,最后求f[n,3],但是却忽略了f[n,4],f[n,5]……这些状态,因此不对。
换一种想法,用f[i]表示前i个骨牌保持美观的方案数,则f[i]=f[i-1]+f[i-2],f[i-1]表示i位置与i-1位置放的不是同一种颜色,f[i-2]表示i位置与i-1位置放的是同一种颜色。
换一种想法,用f[i]表示前i个骨牌保持美观的方案数,则f[i]=f[i-1]+f[i-2],f[i-1]表示i位置与i-1位置放的不是同一种颜色,f[i-2]表示i位置与i-1位置放的是同一种颜色。
然后我们可以求所有情况,因为每一位上两种颜色的都可以放,因此总情况数为2的n次方,再用ans-f[n]即为结果。
本文探讨了使用递推法解决骨牌美观排列问题的方法,通过定义f[i]表示前i个骨牌保持美观的方案数,并利用递推公式f[i]=f[i-1]+f[i-2]来解决问题,最终通过总方案数减去美观方案数得到结果。

被折叠的 条评论
为什么被折叠?



