codeVS 3914昆虫繁殖
来源:互联网 发布:四川省网络信息办公室 编辑:程序博客网 时间:2024/03/29 14:35
题目描述 Description
科学家在热带森林中发现了一种特殊的昆虫,这种昆虫的繁殖能力很强。每对成虫过x个月产y对卵,
每对卵要过两个月长成成虫。假设每个成虫不死,第一个月只有一对成虫,且卵长成成虫后的第一个月不
产卵(过X个月产卵),问过Z个月以后,共有成虫多少对?
输入描述 Input Description
x,y,z的数值
输出描述 Output Description
过Z个月以后,共有成虫对数
样例输入 Sample Input
1 2 8
样例输出 Sample Output
37
数据范围及提示 Data Size & Hint
0=<X<=20,1<=Y<=20,X=<Z<=50
是一道很经典的递推题目。
用a[i]表示第i个月拥有的成虫数目,b[i]表示第i个月产生的新增卵。
由题目可知,前x个月成虫数量始终为1,新增卵为0。
而以后的第i个月,a[i]=a[i-1]+b[i-2],即第i个月的成虫等于第i-1个月的成虫数加上第i-2个月的新增卵(因为卵两个月后变为成虫)。而b[i]=a[i-x]*y,即第i-x月的成虫在x个月后产下y个卵。
最后,因为是过了z个月,答案输出a[z+1]即可。
贴出代码:
#include<iostream>#include<cstdio>using namespace std;int x,y,z;long long a[55],b[55];int main(){scanf("%d%d%d",&x,&y,&z); for(int i=1;i<=x;i++) a[i]=1,b[i]=0; for(int i=x+1;i<=z+1;i++) { b[i]=y*a[i-x]; a[i]=a[i-1]+b[i-2]; } printf("%lld\n",a[z+1]);}
0 0
- codeVS 3914昆虫繁殖
- 昆虫繁殖
- 昆虫繁殖
- 昆虫繁殖
- 昆虫繁殖
- 昆虫繁殖
- 昆虫繁殖
- 昆虫繁殖
- 昆虫繁殖
- 昆虫繁殖
- 昆虫繁殖
- [codevs3914] 昆虫繁殖
- 练习赛5.昆虫繁殖
- POJ 珍惜昆虫的繁殖问题
- Codves3914 昆虫繁殖 递推 fib变形
- 昆虫
- 昆虫
- 兔子繁殖
- HDU 2049 不容易系列之(4)――考新郎(错排 ,组合)
- QT编程中编译的时候出现c_jkdacx0.obj : error LNK2001: 无法解析的外部符号 "class QTextCodec * GlobalCodec" ?
- #发现你#桃子还是苹果——沉锚效应
- MatConvNet学习笔记
- 文件操作
- codeVS 3914昆虫繁殖
- IOS开发笔记——实现倒计时
- Android屏幕适配全攻略(最权威的官方适配指导)
- Spark朴素贝叶斯(naiveBayes)
- json.stingIfy()和json.parse()区别
- [初学嵌入式]完全没有接触过linux也可以轻松玩转4412开发板
- C# NameValueCollection 使用示例
- Android ListView工作原理完全解析,带你从源码的角度彻底理解
- hdu1180 诡异的楼梯(BFS+优先队列)