Sicily 1049. Mondriaan

来源:互联网 发布:c 数据段 编辑:程序博客网 时间:2024/05/16 17:24

直接上递推公式 f[i]=3*f[i-1]+f[i-2]-f[1-3] (i>=3)

递推公式为 f[i]=2*(f[0]+f[1]+...+f[n-3])+3*f[n-2]+2*f[n-1]

 

长度为1的区间内可能有2种情况,即两个正方形或一个长方形

长度为2的区间内去掉长度为1的区间中的情况有3种情况,即上面两个正方形,下面一个长方形,上下颠倒又是一种,还有两个长方形,共三种

长度大于或等于3的区间中想要不与长度为2的情况重复,只能两个长方形相互重叠一个长度,在空缺处补正方形,上下颠倒即有两种

由以上可得通项公式,由通项公式可得递推公式

 

代码很简单:

原创粉丝点击