uva 10918 - Tri Tiling这是数学
2014-08-08 12:59
375 查看
[+]
有一个3xn的矩形,装2x1的矩形,有多少种方案。
显然,当n为奇数的时候不可能实现。
考虑加入第n列的时候。
如果把第n列和第n-1列孤立出来放矩形,可以放3种(这个不难数,这样f(n)=3∗f(n−2)
但是加入第n列,n - 1和n - 2列也可以放矩形了(本来不可以
如图所示
所以目前f(n)=3f(n−2)+2f(n−4)
上面那种情况是把n - 3 ~ n孤立出来的情况。但是n - 3 和n - 4又可以串通。如图
以此类推,一直到n = 0
f(n)=3f(n−2)+2f(n−4)+...+2f(0)
取前一项,相减得
f(n)=4f(n−2)−f(n−4)
OEIS上也有
题意
有一个3xn的矩形,装2x1的矩形,有多少种方案。
思路
显然,当n为奇数的时候不可能实现。考虑加入第n列的时候。
如果把第n列和第n-1列孤立出来放矩形,可以放3种(这个不难数,这样f(n)=3∗f(n−2)
但是加入第n列,n - 1和n - 2列也可以放矩形了(本来不可以
如图所示
所以目前f(n)=3f(n−2)+2f(n−4)
上面那种情况是把n - 3 ~ n孤立出来的情况。但是n - 3 和n - 4又可以串通。如图
以此类推,一直到n = 0
f(n)=3f(n−2)+2f(n−4)+...+2f(0)
取前一项,相减得
f(n)=4f(n−2)−f(n−4)
OEIS上也有
代码
#include <cstdio> #define LL long long using namespace std; LL dp[35]; int main() { int n; dp[0] = 1, dp[2] = 3; for (int i = 4; i <= 30; i += 2) dp[i] = 4 * dp[i - 2] - dp[i - 4]; while (scanf("%d", &n), n >= 0) printf("%lld\n", dp ); return 0; }
相关文章推荐
- UVa:10918 Tri Tiling
- UVa 10918 - Tri Tiling
- UVA10918 - Tri Tiling(递推)
- UVA 10918 Tri Tiling
- UVa 10918 - Tri Tiling
- UVA 10918 Tri Tiling
- uva 10918 Tri Tiling
- uva 10918 Tri Tiling
- UVA 7360 run step(组合数学)
- uva 10918 - Tri Tiling(规律)
- UVA10830 A New Function【数学】
- Collision UVALive - 6613 (数学几何)
- uva 11657 - Rational Billiard(数学)
- 数学·期望·UVA-12230·Crossing Rivers
- [UVA 107] The Cat int the Hat 数学公式和细节啊细节
- UVALive 7511 Multiplication Table (数学模拟题)
- UVA 10325 The Lottery (组合数学,容斥原理,二进制枚举)
- UVALive 6925 Volume of Revolution(数学题)
- UVa 10995 - Educational Journey (数学)
- UVA 11021 - Tribles (数学概率)