蝴蝶繁殖(动态规划)

1740: 蝴蝶繁殖

题目描述

在一个神秘的森林中某种蝴蝶化茧成蝶繁殖的过程为:
每对蝴蝶过x个月产y对卵,每对卵要过两个月长成蝴蝶。
假设每个蝴蝶都不死的情况下,第一个月只有一对蝴蝶,且卵长成蝴蝶后的第一个月不产卵(过x个月产卵),问过z个月以后,共有多少对蝴蝶?

输入

x,y,z的数值
 

输出

过z个月以后,共有多少对蝴蝶。
 

样例输入

1 2 8

样例输出

37

提示

0=<x<=20,1<=y<=20,x=<z<=50
 
样例:
1 2 3 4 5 6 7 8
1 1 1*2+1=3 1*2+3=5 1*2+5=7 3*2+7=13 5*2+13=23 7*2+23=37
 
 
前两天卵都没孵化就只是1(初始),后面每一天都是前一天的成虫数量+i-2-x天的数量*y(第三天也是,第零天也是1)
那么dp方程就是:dp[i]=dp[i-1]+dp[i-x-2];
那么直接上程序:
复制代码
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int main(){
 4     long long dp[55];
 5     int x,y,z;
 6     cin>>x>>y>>z;
 7     for(int i = 0;i<x+2;i++){
 8         dp[i]=1;//前x+1天(0 1 2)初始值 
 9     }
10     for(int i = x+2;i<=z+2;i++){
11         dp[i]=dp[i-1]+dp[i-2-x]*y;//方程 
12     } 
13     cout<<dp[z];
14     return 0;
15 }
复制代码

ok~~~

posted @   陈瑞淞  阅读(500)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示