蓝桥杯练习系统 算法提高 闯关 Java实现_java算法题 技能伤害最高-程序员宅基地

技术标签: 算法  java  

问题描述

  这个游戏有n个关卡,第i个关卡你可以得到V[i]的金钱。但是每打一个关卡就会损失P的金钱。
  当你打完第i个关卡的时候,可以选择打第i+1...min{i+m,n}个关卡。
  你必须从第1关打起,问你打完第n个关卡时最多可以得到多少金钱?

输入格式

  第一行n,m,P。
  第二行n个整数V[i]。

输出格式

  输出一行表示最多可以获得的金钱。

样例输入

2 2 2
1 2

样例输出

-1

数据规模和约定

  0<m≤n≤1000
  其余所有数字都是不超过1,000,000,000的非负整数。

问题分析

        这道题就是动态规划爬楼梯的一道变形题,把能走的步数变成了1~m步,剩下的按照题意就能做出来了。代码如下:

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int n=scanner.nextInt();
		int m=scanner.nextInt();
		Long p=scanner.nextLong();
		//每关能拿到的金币
		Long[] v=new Long[n+1];
		//存储每关最多能拿到的金币
		Long[] dp=new Long[n+1];
		for (int i = 1; i <= n; i++) {
			v[i]=scanner.nextLong();
		}
		//第一关一定要过,算出第一关能拿到的金币
		dp[1]=v[1]-p;
		//找到每一关能拿到最多的金币
		for (int i = 2; i <= n; i++) {
			Long max=Long.MIN_VALUE;
			//每关的最大值都是从前面闯过的关中选最大值,但最多只能往前看m关所以j>=i-m,同时也不能看到-1关去所以j>0
			for (int j=i-1; j >0&&j>=i-m ; j--) {
				max=Math.max(max,dp[j]);
			}
			//找到了前面的最大值,算出当前关的最大值
			dp[i]=max+v[i]-p;
		}
		System.out.println(dp[n]);
	}
}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_46400083/article/details/123823974

智能推荐

Springboot/java/node/python/php基于Springboot的营养配餐评价系统【2024年毕设】-程序员宅基地

文章浏览阅读828次,点赞23次,收藏16次。springboot基于springboot考研资料分享系统。springboot基于springboot的仓储管理系统。开发软件:eclipse/myeclipse/idea。springboot中小型企业物流管理系统的设计与实现。springboot基于云计算的城乡医疗卫生服务系统。springboot消防志愿者服务系统的设计与实现。springboot健身房管理系统的设计与实现。springboot听见你的声音心理咨询网站。springboot数学建模论文阅卷系统。

MinGW-w64安装教程——著名C/C++编译器GCC的Windows版本-程序员宅基地

文章浏览阅读354次。MinGW-w64安装教程——著名C/C++编译器GCC的Windows版本https://www.cnblogs.com/ggg-327931457/p/9694516.html这篇文章解决了我的用“pip install mingw”或者“conda install mingw”无法安装mingw的问题,非常有帮助

[附源码]Python计算机毕业设计高校考研信息共享平台设计与开发_考研择校平台技术上是如何实现的-程序员宅基地

文章浏览阅读276次。项目运行环境配置:Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+Navicat11+Django+nodejs。项目技术:django + python+ Vue 等等组成,B/S模式 +pychram管理等等。环境需要1.运行环境:最好是python3.7.7,我们在这个版本上开发的。其他版本理论上也可以。2.pycharm环境:pycharm都可以。推荐pycharm社区版;_考研择校平台技术上是如何实现的

chatgpt赋能python:Python敲爱心代码的详细方法和注意事项_python爱心代码需要安装什么库-程序员宅基地

文章浏览阅读239次。您可能已经熟悉了Python中的绘图功能。它可以绘制简单的图形和图表,例如线图,柱状图和散点图。但是,您是否知道还可以在Python中绘制爱心?这是一种非常流行的图形,可以在情人节等浪漫场合使用。本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。对于颠覆工作方式的ChatGPT,应该选择拥抱而不是抗拒,未来属于“会用”AI的人。AI职场汇报智能办公文案写作效率提升教程 专注于。_python爱心代码需要安装什么库

chatglm2-6b-int4大语言模型家用电脑部署-程序员宅基地

文章浏览阅读1k次。ChatGLM-6B 是一个开源的、支持中英双语问答的对话语言模型,基于架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。ChatGLM-6B 使用了和ChatGLM相同的技术,针对中文问答和对话进行了优化。经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答。_chatglm2-6b-int4

Linux启动重启mysql_linux mysql启动-程序员宅基地

文章浏览阅读6.4k次,点赞3次,收藏7次。一、启动方式1、使用linux命令service 启动:service mysqld start2、使用 mysqld 脚本启动:/etc/inint.d/mysqld start3、使用 safe_mysqld 启动:safe_mysqld&一、重启1、使用linux命令service 重启:service mysqld restart2、使用 mysqld 脚本重启:/etc/inint.d/mysqld restart二、停止 1、使用 service 启动: se._linux mysql启动

随便推点

sql中的模糊匹配与正则表达式_sql 模糊匹配-程序员宅基地

文章浏览阅读2.4k次。sql中的模糊匹配与正则表达式_sql 模糊匹配

Shp格式详解与在线打开、查看-程序员宅基地

文章浏览阅读7.6k次,点赞33次,收藏36次。使用3D模型在线转换网站进行shp格式在线打开、查看和转换,NSDT 3dconvert支持将shp格式在线转换为glb、gltf、obj、stl、dae、ply、off等格式。_shp

Unity2017 Timeline实例解析:游戏场景中的动画_timeline自定义轨道 2017-程序员宅基地

文章浏览阅读4.2k次。转载注明出处:点击打开链接Unity 2017.1 推出的Timeline功能,不仅可以高效的帮助大家实现游戏场景中的物体动画,还可以制作出更为复杂的过场动画及电影内容。今天这篇文章将由Unity大中华区技术经理成亮,通过实例分析让大家了解Timeline的多轨道,把各类场景中的元素整合实现更为复杂的动画。Timeline简介Timeline 是一套基于时间轴的多轨道动画系统,_timeline自定义轨道 2017

【经典算法题】零钱兑换_java 兑换零钱算法-程序员宅基地

文章浏览阅读2.4k次。【经典算法题】零钱兑换Leetcode 0322 零钱兑换题目描述:Leetcode 0322 零钱兑换分析本题的考点:背包问题。完全背包问题,amout为容量;物品体积为coins[i],价值为1。本题和Leetcode 0279 完全平方数十分类似,可以参考LC279的分析。注意本题和Leetcode 0518 零钱兑换 II的区别,LC518让求得是体积恰好是m的方案数,本题求的是体积恰好是m需要用的最少硬币数。代码C++class Solut_java 兑换零钱算法

精心整理史上最全的数据结构flash演示动画,共5个版本,祝大家考研成功!_数据结构 flash-程序员宅基地

文章浏览阅读1.8k次,点赞2次,收藏4次。精心整理史上最全的数据结构flash演示动画,共5个版本,祝大家考研成功!\数据结构flash演示\版本1\数据结构flash演示\版本2\数据结构flash演示\版本3\数据结构flash演示\版本4\数据结构flash演示\版本5\数据结构flash演示\版本1\1-4 算法和算法分析 冒泡排序.swf\数据结构flash演示\版本1\10-1-1插入排序.swf\数据结构fl..._数据结构 flash

C语言经典算法题_c 语言算法题-程序员宅基地

文章浏览阅读3.5k次,点赞4次,收藏48次。1. 有1、2、3、4个数字,能组成多少个互不相同且无重复的三位数?分别是多少?#include <stdio.h>void main(){ int i,j,k; printf("\n"); for(i=1;i<5;i++){ for(j=1;j<5;j++){ for(k=1;k<5;k++){ if(i!=j&&j!=k&&i!=k){ printf("%d,%d,%d",i,j,k); p_c 语言算法题

推荐文章

热门文章

相关标签