当前位置: 首页 > news >正文

2021年庐阳区青少年信息学科普日真题- 跳跃(jump)

题目描述
猴子的正上方,每1米处,都有一个桃子,一共有N个桃子,每个桃子都有其能量值,摘下这个桃子吃下就获得了这个能力值。猴子每跳1米会消耗1个点能量,在能量值允许的下,它可以跳到任何一个可以到达的高度,并且将这个高度及以下高度的桃子摘下吃掉。确保猴子初始的能量一定可以摘下所有的桃子。求该猴子摘下吃掉所有的桃子后,保留最多的能量值

输入格式
第一行 两个整数N和M,表示桃子的数量和猴子的初始能量

第二行,N个非负整数,依次描述从下向上描述各桃子的能量值。

输出格式
一个整数,意义如题所述。

输入输出样例

输入样例13 2
2 2 2输出样例14

说明
1<=N <=2000000


【解析】
如果这道题你们复制本代码,提示超时的话,请使用scanf/printf进行输入输出,因为本题数据量还是很大的。
1:本题关键字 “最多“,一般几种算法:贪心、二分、搜索、动规。
2:贪心不对,因为就样例,贪心是不成立的。 二分不适合此题;搜索更不行数据太多;只能想动态规划了。

贪心不对,是因为你总想着,能跳多高就跳多高。比如样例,初始能量2,你一下子就跳2个桃子。还不如只跳第一个桃子,不信去试试。
所以本题的策略是:第i个桃子应该是被下面某个最矮的桃子摘下的,因为从最矮的桃子跳上来到第i个桃子,然后直接掉下去,顺手摘掉 i 下面的桃子。
所以状态定义:dp[i] 表示摘完第i个桃子的最大能量值
状态转移方程:dp[i]=max(dp[i], dp[ 0~i-1 ] >= i + sum[i] - sum[j] - i )
dp[ 0~i-1 ] >= i 表示 满足第一次大于 i 的桃子下标

#include <iostream>
using namespace std;
const int N=2000010;
long long  a[N];
long long dp[N];//摘下第i个桃子的能量值 dp[i]
//dp[i]=min(dp[1~i-1])+a[i]-i
long long sum[N];
int main()
{int n,m;cin>>n>>m;dp[0]=m;for(int i=1;i<=n;i++){cin>>a[i];sum[i]=sum[i-1]+a[i];}int j=0;for(int i=1;i<=n;i++){while(dp[j]<i){j++;} dp[i]=max(dp[i],dp[j]+sum[i]-sum[j]-i);}cout<<dp[n];return 0;
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 代码随想录算法训练营第三十二天 | 动态规划 part01
  • 《学会 SpringMVC 系列 · 剖析出参处理》
  • MacOS 中 Office 历史记录一键清理
  • 2024全新Thinkphp聊天室H5实时聊天室群聊聊天室自动分配账户完群组/私聊/禁言等功能/全开源运营版本
  • 源代码加密防泄漏如何做?
  • 如何实现element-ui 后台中点击按钮,将文本内容复制到剪贴板
  • 【RunnerGo】离线安装成功版本
  • Transwarp Data Studio 4.0 :适应AI新时代实现三大能力提升
  • java基础--字符串用法
  • zotero安装与使用
  • Spring统一功能处理:拦截器、响应与异常的统一管理
  • MM 特殊采购类型
  • 加密简史:从古代到现代的方法
  • Linux网络编程之dpdk的环境配置详解
  • 自动化测试与手动测试的区别!
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • node入门
  • PhantomJS 安装
  • rabbitmq延迟消息示例
  • React-Native - 收藏集 - 掘金
  • Webpack 4 学习01(基础配置)
  • 老板让我十分钟上手nx-admin
  • 力扣(LeetCode)22
  • 时间复杂度与空间复杂度分析
  • 责任链模式的两种实现
  • linux 淘宝开源监控工具tsar
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (九十四)函数和二维数组
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (七)Flink Watermark
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (四)opengl函数加载和错误处理
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • **PHP分步表单提交思路(分页表单提交)
  • .gitignore不生效的解决方案
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • .NET DataGridView数据绑定说明
  • .net mvc部分视图
  • .Net 垃圾回收机制原理(二)
  • .NET 漏洞分析 | 某ERP系统存在SQL注入
  • .net通用权限框架B/S (三)--MODEL层(2)
  • @Bean注解详解
  • @软考考生,这份软考高分攻略你须知道
  • [ 常用工具篇 ] AntSword 蚁剑安装及使用详解
  • [.net] 如何在mail的加入正文显示图片
  • [ASP]青辰网络考试管理系统NES X3.5
  • [C#]调用本地摄像头录制视频并保存
  • [C++]spdlog学习
  • [caffe(二)]Python加载训练caffe模型并进行测试1
  • [CocosCreator]Android的增加AndroidX的动态权限
  • [DevEpxress]GridControl 显示Gif动画