ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

蝴蝶繁殖(动态规划)

2022-02-20 13:03:04  阅读:161  来源: 互联网

标签:蝴蝶 37 样例 long int 繁殖 动态 dp


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~~~

标签:蝴蝶,37,样例,long,int,繁殖,动态,dp
来源: https://www.cnblogs.com/crs---stu/p/15915276.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有