递推
w1234fd
这个作者很懒,什么都没留下…
展开
-
hdu 2190 重建希望小学
题目 【类似hdu 2046 骨牌铺方格】 注意思考:(老师提醒点) 例如:3 -> 5,为什么是2种变化,而不是 3种变化?答:用6块1米×1米的地砖时,经过状态4,已经被考虑,不能重复考虑。 #include<stdio.h> int main(){ long long ans[35];//注意防递推值太大,定义为long long型 int t; ans[1]=1; ans[2]=3; for(int i=3;i<=30;i++){ ans[i]=ans[i-原创 2021-05-21 19:23:06 · 96 阅读 · 0 评论 -
hdu 2046 骨牌铺方格
骨牌铺方格 题目 分析 F(0) = 0,没有地方摆骨牌,所以为0; f(1) = 1,只能竖着摆放1个骨牌;(1种铺放方案) f(2) = 2,可以是横着摆放2个骨牌,或者竖着摆放2个骨牌;(1种铺放方案) f(n) = f(n-2) + f(n-1),n>2,可以在f(n-2)的基础上在右边再横着放2个骨牌(竖着放已经在f(n-1)中),也可以在f(n-1)的基础上在右边再竖着1个骨牌。 【类似于超级楼梯】 代码: #include<stdio.h> int main() { i原创 2021-05-16 17:49:10 · 127 阅读 · 0 评论 -
hdu 2044 一只小蜜蜂...
** 一只小蜜蜂…** 题目 题目分析如下图 问题分析:这个问题非常类似于我之前写的:hdu 超级楼梯,略微有些不同。 站在第n个蜂房想一下,前一步是从哪里来的,问题就清楚了。 分析: 看图可知,由于蜜蜂每次只能从前1个蜂房前2个蜂房过来,那么f(n)=f(n-2)+f(n-1)。这部就是一个菲波拉契数列吗?就是一个递推问题? 可是,开始时候,蜜蜂是在第1个蜂房,所以数列的开始几项会有所不同。 f(1)=0,因为蜜蜂开始在第1个蜂房; f(2)=1,蜜蜂只能从第1个蜂房来到第2个蜂房; f(3)=2,蜜蜂原创 2021-05-16 17:23:33 · 122 阅读 · 0 评论 -
hdu 2041 超级楼梯
超级楼梯 题目 从题目中推出下图关系图 由图可知:计算 F(n) 时,主要时求出F(n-1)与F(n-2)的值,再求两者之和。类似于斐波那契数列 递推的关键 1.在计算 F(n) 时,要保证F(n-1)、F(n-2)、F(n-3)、……、F(2)、F(1) 已全部完成计算 2.计算的次序是F(1)、F(2)、F(3)、……、F(n-2)、F(n-1)、F(n) #include<stdio.h> int main() { int n,m; long long a[50]={0,1,1};/原创 2021-05-16 16:40:26 · 77 阅读 · 0 评论