【递归与递推】青蛙过河

题目描述

有一条河,左边一个石墩(A区)上有编号为1,2,3,4,…,n的n只青蛙,河中有k个荷叶(C区),还有h个石墩(D区),右边有一个石墩(B区),如下图2—5所示。n只青蛙要过河(从左岸石墩A到右岸石墩B),规则为:

(1)石墩上可以承受任意多只青蛙,荷叶只能承受一只青蛙(不论大小);
(2)青蛙可以:A→B(表示可以从A跳到B,下同),A→C,A→D,C→B,D→B,D→C,C→D;
(3)当一个石墩上有多只青蛙时,则上面的青蛙只能跳到比它大1号的青蛙上面。

你的任务是对于给出的h,k,计算并输出最多能有多少只青蛙可以根据以上规则顺利过河?

输入

一行两个整数h和k,分别表示k片荷叶和h个石墩

输出

输出最多能有多少只青蛙可以根据以上规则顺利过河

样例输入

2 3

样例输出

16

 

思路:递推(dp)

首先,青蛙只能往前跳,不能往后跳,而且只能12345这样排下去,所以要想使最多的青蛙到达对岸,只需使编号最大的青蛙首先跳到对岸(否则编号更大的青蛙就跳不过去了)。

然后,要想使编号最大的青蛙首先跳到对岸,只需让河面上承载最多的青蛙。而荷叶上只能承载一只青蛙,所以需要让青蛙尽可能多地叠到石墩上。

接下来便是核心内容:(f[i]表示当有k个荷叶,i个石墩时过河青蛙的最大数量)

1、若有k个荷叶,没有石墩,则最多有k+1个青蛙。所以f[0]=k+1(不需要解释了吧);

2、若有k个荷叶,1个石墩,则只需要使石墩上承载最多的青蛙。进一步分析,我们只需要将石墩当做对岸,这样就变成1的情况了。所以f[1]=f[0]+k+1;

3、若有k个荷叶,2个石墩,则需要先让石墩1作为对岸,叠完后再让石墩2作为对岸。所以f[2]=f[1]+f[0]+k+1;

继续往下推理,得到状态转移方程:f[h]=f[0]+f[1]+f[2]+……+f[h-1]+k+1;

代码:

 1 #include <iostream>
 2 #include <bits/stdc++.h>
 3 using namespace std;
 4 int n,m,sum;
 5 int a[10000];
 6 int main()
 7 {
 8     scanf("%d%d",&n,&m);
 9     a[0]=m+1;
10     sum=a[0];
11     for(int i=1;i<=n;i++)
12     {
13         a[i]=sum;
14         sum+=a[i];
15     }
16     cout << sum << endl;
17     return 0;
18 }
View Code

 

转载于:https://www.cnblogs.com/SoulSecret/p/8447457.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/571181.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python arp欺骗

使用python构造一个arp欺骗脚本 import os import sys from scapy.all import * import optparse def main():usage"usage:[-i interface] [-t IP to attack] [-g Gateway IP]"parseroptparse.OptionParser(usage)parser.add_option(-i,destinterface,helpselect int…

java对外sdk提供接口_Android SDK封装,对外提供接口

项目中需要把连接服务器的部分做成一个service并生成一个jar模块。其他产品就可通过这个包来快速的开发连接服务器的应用软件。做成一个service的优点是&#xff1a;1&#xff0e; 在后台运行&#xff0c;可以一直保持与服务器的连接2&#xff0e; 服务可以只对外提供接口&…

hdu3265一种错误的做法

题目链接 这是求面积并的题目&#xff0c;刚开始我的思路是将挖去的矩形的入边和出边覆盖效果颠倒&#xff0c; 即入边-1&#xff0c;出边1&#xff0c;后来调试到爆炸&#xff0c;发现这是错误的做法。。原因就是对最简单 的面积并问题没有搞清楚。刚开始接触扫描线的时候我就…

php截断上传,截断在文件包含和上传中的利用

截断大概可以在以下情况适用include(require)file_get_contentsfile_exists所有url中参数可以用%00控制0x01. 本地文件包含1.1 截断类型&#xff1a;php %00截断截断条件&#xff1a;php版本小于5.3.4 详情关注CVE-2006-7243php的magic_quotes_gpc为OFF状态漏洞文件lfi.php要in…

解决虚拟机安装64位系统“此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态”的问题...

环境说明&#xff1a;系统&#xff1a;Windows 8.1 简体中文专业版 虚拟机&#xff1a;VMware Workstation 11.0.0 报错&#xff1a;此主机支持 Intel VT-x&#xff0c;但 Intel VT-x 处于禁用状态。如图&#xff1a; 图片原文如下&#xff1a; 已将该…

#前端# 解决前端页面滑动不顺畅的问题

看情况有时候需要将body和html同时选择。转载于:https://www.cnblogs.com/tnt-33/p/8464370.html

php守护进程热更新,如何通过PHPStorm配置Hyperf热更新开发环境

通过 PHPStorm 配置热更新开发环境在开发 Hyperf/Swoole 这样的持久化应用时&#xff0c;每当应用代码发生了变更时&#xff0c;都需要重启应用使代码生效&#xff0c;尽管在开发 CLI 应用时这也是一个正确且合理地操作&#xff0c;因为我们开发过程中仍需要关注 stdout 输出的…

php elements,wd elements se和wd elements的区别是什么

区别&#xff1a;1、WD Elements SE有两个USB3.0接口&#xff1b;而WD Elements有一个USB3.0接口&#xff0c;一个USB2.0接口。2、WD Elements SE配置有数据加密功能&#xff1b;而WD Elements不具备存储数据加密功能。本文操作环境&#xff1a;windows10系统、thinkpad t480电…

【热修复】Andfix源码分析

转载请标注来源&#xff1a;http://www.cnblogs.com/charles04/p/8471301.html Andfix源码分析 0、目录 背景介绍源码分析方案评价总结与思考参考文献1、背景介绍 热修复技术是移动端领域近年非常活跃的一项新技术&#xff0c;通过热修复技术可以在不发布应用市场版本&#xff…

已知矩阵 matlab,在MATLAB中,已知矩阵A,那么A(:,2:end)表示

摘要&#xff1a;已知供输工方、表示添资料准加剂、加及标应提原料有关的()的出国法等使用&#xff0c;品”“进办理报检时口食。已知信息系统模型不包逻辑括(。...已知信息系统构化中的结方法设计&#xff0c;矩阵细设和详总体计两阶段一般分为设计&#xff0c;总体主要建立其…

文件源码读取 php伪协议,include(文件包含漏洞,php伪协议)

点击tips查看元素&#xff0c;也并没有有用的信息&#xff0c;联想到题目,include想起了文件包含漏洞。构造payload?file/../../../../../../flag.php没有返回东西。看完wq学到了一个新姿势&#xff1a;php伪代码构造payload?filephp://filter/readconvert.base64-encode/res…

Echarts自定义折线图例,增加选中功能

用Echarts图表开发&#xff0c;原本的Echarts图例不一定能满足我们的视觉要求。 下面是Echarts 折线图自定义图例&#xff0c;图例checked选中&#xff0c;相应的折线线条会随之checked&#xff0c;其余未选中的图例对应的折线opacity会降低&#xff0c;&#xff08;柱状图&…

php产品效果图,jQuery_基于JQuery制作的产品广告效果,效果图.如下: 动画效果介绍 - phpStudy...

基于JQuery制作的产品广告效果效果图.如下&#xff1a;动画效果介绍&#xff1a;这组广告效果是打开页面后图片会自动播放&#xff0c;从1-5共计5张图片&#xff0c;如果属标放到右下角的1、2、3、4、5列表上&#xff0c;可以自由进行切换到自己想看的图片上去。图片切换是由下…

Python on the Way, Day1 - Python基础1

一、 Python介绍 python的创始人为吉多范罗苏姆&#xff08;Guido van Rossum&#xff09;。1989年的圣诞节期间&#xff0c;吉多范罗苏姆为了在阿姆斯特丹打发时间&#xff0c;决心开发一个新的脚本解释程序&#xff0c;作为ABC语言的一种继承 Python可以应用于众多领域&#…

python数据显示为什么只能显示最后一个变量,Python变量和简单数据类型,之,的

变量介绍。变量就是代表某个数据(值)的名称&#xff0c;简单点说变量就是给数据起个名字。变量的特点。1)变量是计算机内存中的一块区域&#xff0c;变量可以存储规定范围内的值&#xff0c;而且值是可变的。2)在创建变量时会在内存中开辟一个空间。基于变量的数据类型&#xf…

【BZOJ2095】【POI2010】Bridge 网络流

题目大意 ​  给你一个无向图&#xff0c;每条边的两个方向的边权可能不同。要求找出一条欧拉回路使得路径上的边权的最大值最小。无解输出"NIE"。   \(2\leq n\leq 1000,1\leq m\leq 2000\) 题解 ​  我们先二分答案\(ans\)&#xff0c;把边权大于\(ans\)的边…

space index.php 7-14,SpacePack高效部署PHP生产环境

SpacePack 基于 Docker 为了快速部署 PHP 生产环境而产生的项目&#xff0c;它包含了一般项目中常用的组件&#xff0c;能够在最短的时间内产生一个完善并且优化过的 PHP 生产环境。容器版本SpacePack 默认包含了 OpenResty 1.13、PHP 7.2、MariaDB 10.3、Memcached 1.5、Redis…

云播自带解析php,使用PHP SDK,web端的华为云视频点播接入,加密视频播放的坑与解决方案-全代码篇...

下载phpdemo算是跑起来了&#xff0c;现在就要考虑租户系统如自身验证token的问题了。1、先介绍下我的代码目录2、文件执行的时序图和流程图2、代码demotest.phpfunction curl_request($url,$post,$cookie, $returnCookie0){$curl curl_init();curl_setopt($curl, CURLOPT_URL…

php获取h5视频直链,一种H5播放实时视频的方法与系统与流程

本发明涉及播放实时视频&#xff0c;尤其涉及一种h5播放实时视频的方法与系统。背景技术&#xff1a;h5是指第5代html&#xff0c;也指用h5语言制作的一切数字产品。所谓html是“超文本标记语言”的英文缩写。“超文本”是指页面内可以包含图片、链接&#xff0c;甚至音乐、程序…

基础题

1&#xff0c;别名&#xff0c;内部&#xff0c;外部&#xff0c;hash优先级&#xff1f; 2&#xff0c;screen协助 1.一台screen -S 协助名称 2.另外一台screen -ls 列出目前开的协助会话&#xff08;session&#xff09;&#xff0c;找到上面协助名称对应的session号。 3. sc…