您的位置:首页 > 其它

hdu-ACM Step 3.1递归求解2041,2044,2046,2018,2050,2501,2045,2604

2012-03-03 23:52 447 查看
这章全是递推求解专题

很类似DP

现在分析各题的递推公式:

3.1.1超级楼梯

http://acm.hdu.edu.cn/showproblem.php?pid=2041

C[j]=C[j-i]+C[j-2] ///////////////C[1]=1,C[2]=1(此处没想通,为什么C[2]=1,不过题目很明显给出了)

可以理解为在要到第j层,可以从j-2层迈两阶,j-1层迈一阶。

3.1.2一只小蜜蜂

http://acm.hdu.edu.cn/showproblem.php?pid=2044

Cm-n等同于C1-(n-m+1)

num[i]=num[i-1]+num[i-2];、、、num[b][0]=0;num[1]=1;[/b]

[b]数据超出int 范围,用long long可以解决[/b]

思路如3.1.1

3.1.3骨牌铺方格

http://acm.hdu.edu.cn/showproblem.php?pid=2046

num[i]=num[i-1]+num[i-2];、、、num[b][0]=1;num[1]=1;[/b]


如3.1.2 用long long

3.1.4母牛的故事

http://acm.hdu.edu.cn/showproblem.php?pid=2018

num[i]=num[i-1]+num[i-3];、、、num[b][0]=1;num[1]=1;num[2]=2;num[3]=3;[/b]

第5天的牛数等于昨天的牛数加上第2天的牛数即(第一天的牛数生的小牛数加第五天大母牛生的小牛)还是long long类型

3.1.5折线分割平面

http://acm.hdu.edu.cn/showproblem.php?pid=2050

这个题是根据前几个题猜测的公式:

num[i]=2*i*i-i+1;数据用int就足够了

3.1.6Tiling easy version

http://acm.hdu.edu.cn/showproblem.php?pid=2501

num[i]=num[i-1]+2*num[i-2];long
long的数据类型


在3.1.3的基础上,再添加一个情况,num[i-2]放好后再放一个2*2的骨牌

3.1.7不容易系列之3 LELE的RPG难题

http://acm.hdu.edu.cn/showproblem.php?pid=2045

num[i]=num[i-1]+num[i-2]*2;

题意很类似于3.1.6

3.1.8Queuing

http://acm.hdu.edu.cn/showproblem.php?pid=2604

这个题有俩解法。这里放一个递推的公式。另外的矩阵解法,具体的解法 等吃完饭再重新写个。

num[L]=(num[L-1]+num[L-3]+num[L-4]

long long还是会超范围,用char类型解决,打表计算好余数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c