uva 10918 Tri Tiling
2013-02-18 17:42
375 查看
递推
参考:http://hi.baidu.com/gbr12345/item/b1686d3e4d2c5584b611db64
题意:输入n要拼成一个3*n的矩形,现有无限的2*1的小矩形可以提供,能有多少种不同的拼凑方案
这题一看就觉得是组合数字或者是递推,看了几下确定递推更好做。然后想了下怎么递推。1.就按照n从小到大来推,但是找不出什么规律。2.按照面积来递推,先凑出面积为2的,再面积为4,为6……然后对于3*n的面积是多少就直接输出即可,这种思想感觉非常接近了但是还是不行,因为处理不了重复的情况
最后无奈看了解题报告,不过还是不知道原作者怎么想到的这个递推公式
参考:http://hi.baidu.com/gbr12345/item/b1686d3e4d2c5584b611db64
题意:输入n要拼成一个3*n的矩形,现有无限的2*1的小矩形可以提供,能有多少种不同的拼凑方案
这题一看就觉得是组合数字或者是递推,看了几下确定递推更好做。然后想了下怎么递推。1.就按照n从小到大来推,但是找不出什么规律。2.按照面积来递推,先凑出面积为2的,再面积为4,为6……然后对于3*n的面积是多少就直接输出即可,这种思想感觉非常接近了但是还是不行,因为处理不了重复的情况
最后无奈看了解题报告,不过还是不知道原作者怎么想到的这个递推公式
#include <cstdio> #define N 35 long long dp ,sum ; void init() { dp[0]=1; dp[2]=3; sum[0]=1; sum[2]=4; for(int i=4; i<=30; i+=2) { dp[i]=3*dp[i-2]+2*sum[i-4]; sum[i]=sum[i-2]+dp[i]; } return ; } int main() { int n; init(); while(scanf("%d",&n)!=EOF && n!=-1) printf("%lld\n",dp ); return 0; }
相关文章推荐
- UVa 10918 - Tri Tiling
- 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(规律)
- SPOJ 3883. LATGACH3/ UVA 10918
- uva 10918 - Tri Tiling(规律)
- uva 10862 uva 10334 uva 10359 uva 10918 (大数+递推)
- uva10198 Counting
- UVa 128 - Software CRC
- UVa:542 France '98
- UVA之10361 - Automatic Poetry
- uva 11292 The Dragon of Loowater
- uva 253 - Cube painting
- uva 6957 Hyacinth bfs
- uva 1001 dijkstra