小游戏(动态规划)

【课设】java:迷宫小游戏(递归与分治、动态规划、贪心算法、回溯法、分支限界法) 鱼弦:优快云内容合伙人、优快云新星导师、全栈领域优质创作者 、51CTO(Top红人+专家博主) 、github开源爱好者(go-zero源码二次开发、游戏后端架构 https://github.com/Peakchen) 阅读详情

小游戏

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld

题目描述 

有一个长度为 n 的数组 a[i] , 每一步能拿走一个数,比如拿第 i 个数, a[i] = x ,得到相应的分数 x ,但拿掉这个 x 后, x+1 和 x-1 (如果有 a[j] = x+1 或 a[j] = x-1 存在) 就会变得不可拿(但是有 a[j] = x 的话可以继续拿这个 x )。求最大分数。

输入描述:

 

第一行一个整数 n. ( 1 ≤ n ≤ 2e5)

第二行 n 个整数 a[i]. (0 ≤ a[i] ≤ 2e5)

输出描述:

 

输出能得到的最大分数。

示例1

输入

复制

5
1 2 2 2 3

输出

复制

6

说明

拿走 3 个 2

示例2

输入

复制

3
1 2 3

输出

复制

4

说明

拿走 1 和 3

思路:

看到题目想到的是dp 但是要如何找到状态转移方程呢

既然相同的数字可以同时拿起

那就对同个数字进行打表计和

然后从0开始到最大数字的下表

选3的同时可以决策 是否选1 和0

选2的同时只能决策是否选0

所以我们应该从2分

int n;
const int MAX=100010;
int a[MAX];
int dp[10000010];
int main(){
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>a[i];
        dp[a[i]]+=a[i];
    }
    for(int i=0;i<2000000;i++){
        if(i==2){
            dp[i]+=dp[i-2];
        }
        else if(i>=3){
            dp[i]+=max(dp[i-2],dp[i-3]);
        }
    }
    int ans=0;
    for(int i=0;i<200005;i++){
        ans=max(ans,dp[i]);
    }
    cout<<ans;
}

C语言经典小游戏源码解析与实践 C语言是一种广泛使用的编程语言,它在游戏开发领域中扮演着重要角色,尤其是对于小型游戏和操作系统内核级应用。C语言提供了接近硬件级别的操作能力,这让它在开发性能要求高的游戏时尤为得心应手。 阅读详情

相关推荐

动态规划-多边形游戏

动态规划算法通常用于求解具有某种最优性质的问题.在这类问题中,可能会有许多可行解.每一个解都对应于一个值,我们希望找到具有最优值的解.动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解.与分治法不同的是,适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的.若用分治法来解这类问题,则分解得到的子问题数目太多,有些子问题被重复计算了很多次.如果我们能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,这样就可以避免大量的重复计算,节省时间.我们可以用一个表来记录所有已解的子问题的答案.不管该子问题以后是否被用到,只要它被计算过,就将其结果填入表中.这就是动态规划法的基本思路.具体的动态规划算法多种多样,但它们具有相同的填表格式. 多边形游戏问题描述: 给定N个顶点的多边形,每个顶点标有一个整数,每条边上标有+(加)或是×(乘)号,并且N条边按照顺时针依次编号为1~N。

动态规划:拿数问题

Vjudge:动态规划例题

qq_44654498的博客 529

动态规划--分组游戏

国际大学生程序设计竞赛例题:分组游戏,抽象有向图问题

【拿数问题 II】dp

题目 题意 给 n 个数,每一步能拿走一个数,比如拿第 i 个数, Ai = x,得到相应的分数 x,但拿掉这个 Ai 后,x+1 和 x-1 (如果有 Aj = x+1 或 Aj = x-1 存在) 就会变得不可拿(但是有 Aj = x 的话可以继续拿这个 x)。求最大分数。 本题和课上讲的有些许不一样,但是核心是一样,需要你自己思考。 Input 第一行包含一个整数 n (1 ≤ n ≤ 1...

weixin_43676449的博客 346

Cesium实战:全球海洋动态水面与自定义区域波浪效果实现

本文详细介绍了在Cesium中实现全球海洋动态水面与自定义区域波浪效果的实战方法。通过解析核心概念Primitive与Geometry,并深入讲解Water材质的关键参数调节,指导开发者快速创建逼真的动态海洋。文章重点阐述了如何利用多边形坐标定义不规则图形区域,实现精准的局部水域波浪效果,并提供了性能优化与视觉提升的实用技巧。

weixin_29256771的博客 501

PADS Logic VX2.5元件绘制全流程:从零开始创建自定义元件库

本文详细介绍了在PADS Logic VX2.5中从零开始创建自定义元件库的全流程。内容包括理解PADS独特的四库分立结构、绘制原理图符号(CAE封装)、关联PCB封装、创建元件类型以及最终的调用验证。掌握元件绘制技能能从根本上提升设计效率、确保设计规范统一,并从源头杜绝原理图与PCB之间的关联错误,是硬件工程师必备的核心能力。

oo7890的博客 441

第四周集训

牛客补题 游游的排列构造 游游定义一个排列中,满足以下条件的为“好元素”: 对于第i个元素 ai 而言,ai为前i个元素的最大值。例如,[3,1,5,2,4]中,第一个和第三个元素是好元素。 游游希望你构造一个长度为n的排列,其中有k个好元素,且任意两个好元素都不相邻。你能帮帮她吗? 排列的定义:由 1 到 n所有正整数组成的长度为n的数组,每个正整数出现恰好一次。 分析 两个好元素不相邻 那插空。且第一个数不管是几都是好元素 代码 #include<bits/stdc++.h> using n

2302_77455197的博客 613

2025年三级等保新规实战:从零开始搭建企业安全防护体系(附完整配置清单)

本文详细解析2025年三级等保新规的核心变化,提供从零开始搭建企业安全防护体系的实战指南。重点介绍动态防护能力、实战化攻防验证和全链路数据保护等关键要求,并附完整配置清单,帮助企业高效合规。

weixin_30836759的博客 468

大厂真题:【DP】米哈游2023秋招-米小游与魔法少女-奇运

米小游都快保底了还没抽到希儿,好生气哦!只能打会活动再拿点水晶。米小游和世界第一可爱的魔法少女 TeRiRi 正在打 BOSS,BOSS 的血量为h,当 BOSS 血量小于等于0时,BOSS 死亡。xx可以等概率的投掷出1∼6之间的点数。(所以为什么不叫骰子呢?米小游想知道,TeRiRi 的套牌在一轮内击杀 BOSS 的概率。

weixin_48157259的博客 439

手把手教你用Matlab搞定GRACE RL06数据读取:冯伟老师工具箱无GUI版实战

本文详细介绍了如何使用Matlab处理GRACE RL06数据,重点解析了冯伟教授工具箱的无GUI版实战操作。通过环境配置、核心函数改造和批处理技巧,帮助科研工作者高效完成重力场数据的读取与分析,特别适合服务器集群环境下的批量处理需求。

weixin_29313817的博客 200

(BS ISO 11898-1:2015)CAN_FD 总线协议详解1- 基本概念描述

本文对can总线协议做了详细的讲解,can协议里面的每一个知识点都做了详细且举一反三的论述,读了本文可以不用读can协议了。

zhangziranzm的博客 2314

【算法题】动态规划中级阶段之跳跃游戏、最大子数组和、解码方法

动态规划(Dynamic Programming,简称 DP)是一种解决多阶段决策过程最优化问题的方法。它是一种将复杂问题分解成重叠子问题的策略,通过维护每个子问题的最优解来推导出问题的最优解。动态规划的主要思想是利用已求解的子问题的最优解来推导出更大问题的最优解,从而避免了重复计算。因此,动态规划通常采用自底向上的方式进行求解,先求解出小规模的问题,然后逐步推导出更大规模的问题,直到求解出整个问题的最优解。定义状态:将问题划分为若干个子问题,并定义状态表示子问题的解;

Lion_Long的博客 827

YOLO骨干网络改进-第1篇:深度解析YOLOv8的C2f模块原理与实现

首先,需要将自定义的C2f模块注册到Ultralytics的模块字典中。# 注册自定义模块"""自定义的C2f模块。"""# 自定义YOLOv8s配置文件:yolov8s_custom.yamlscales:# Backbonebackbone:# Headhead:# 加载自定义模型# 训练模型imgsz=640,batch=16,device=0,workers=8,设计理念:C2f模块是C3模块的演进,通过增加梯度分支来丰富梯度流,提升特征表示能力。结构原理。

2201_76125393的博客 110

我的2023上半年

我学习了很多新的算法,比如说分治算法,动态规划,递推,递归,图,二叉树,深度优先搜索,广度优先搜索,高精度,泛洪算法,并查集,最小生成树,前缀和,尺取法等。准备集训(对付csp-j),并且继续学习更难的新算法。我在这半年里非常的充实,也让我受益匪浅。并且我还要继续加强我的小游戏。

simonliuass的博客 113

基于大语言模型的学术论文阅读辅助分析系统的研究与应用

本文提出了一种基于大语言模型的学术论文阅读辅助分析系统PaperMind,旨在解决传统学术阅读方式面临的三大困境:信息定位困难、跨学科知识断层和手动整理耗时。系统采用检索增强生成(RAG)架构,通过PDF文档解析、语义分割、向量嵌入与FAISS向量检索相结合的技术路线,构建了完整的文档处理流水线。实验结果表明,系统在文档加载分割、向量检索与问答生成环节均达到预期性能指标,检索命中率最高达98%。该系统为学术文献智能化处理提供了可复用的技术方案,有效解决了通用大语言模型在学术场景中的幻觉引用、归因能力不足等问

huanghm88的专栏 93

【学习系列】SAP RAP 4:通过注解来完成一些常规需求

本文介绍了RAP应用中常用注解的实现方式,包括搜索帮助、文本描述绑定、联动搜索、字段控制等功能。通过@Consumption、@UI等注解可以实现搜索帮助定义、多字段联动、必输校验、默认排序和默认值设置。管理字段可通过@Semantics注解自动记录创建/修改信息,长文本使用@UI.multiLineText实现多行显示。这些注解可优化界面交互和数据管理,为后续行为定义功能开发奠定基础。文章结构清晰,针对不同需求提供了具体的实现方案和代码示例。

DeveloperMrMeng的博客 697

7-7 专5 Game(动态规划)

开始思路:         如果从每一个位置开始枚举,寻找最大值会造成O(n*n)的复杂度,由于数据量是2*10^6,因此会超时。 优化思想:         如果使用枚举的话,考虑每个位置i,当从i出发时路线是唯一的,因此在枚举路径上的其他点的值时,会导致重复计算。因此可以使用动态规划思想,从后向前求,把一条路径上所经过的点记忆化,这样在计算前一个点的值时可以直接使用,这样可以优化到O(N)的复杂度。

psy0987的博客 615

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

状压DP例题(种花小游戏+广场铺砖)

状态压缩其实就是用特殊的方法来表示复杂的状态做DP,这种特殊的方法一般是位运算。 例题一:种花小游戏 DPi j ,i可以拆分成二进制数,每一位上的0或1表示是否走过,j表示当前位置。 #include&lt;bits/stdc++.h&gt; using namespace std; const double maxn=200000000.0; double f[600010][30]...

番茄你个西红柿吖的博客 780

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

程序设计-在校整理-06 最常公共子序列与子串+2048小游戏+KNN简单实例

【在校整理-06 最常公共子序列与子串+2048小游戏+KNN简单实例】(注:仅供参考学习使用)一、课题内容和要求1、问题描述1.1最长公共子序列与子串**1.2 2048小游戏1.3 K-NN算法实例二、源程序代码三、测试总结四、其他 一、课题内容和要求 本篇中 ,主要是本人程序设计实验周的课程试验,包括最常公共子序列与子串、2048小游戏和K-NN算法简单示例共三个不同部分的实验内容。 1、问题描述 1.1最长公共子序列与子串** 问题描述: (1)公共子序列 给定两个字符串,求解这两个字符串的最长公

Jie_hw的博客 576

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

郑州轻工业大学 23级新生C语言周赛(5)

郑州轻工业大学 23级新生C语言周赛(5) 分析+代码+用到的算法

m0_74304371的博客 743

动态规划-dp

威威猫最近不务正业,每天沉迷于游戏“打地鼠”。   每当朋友们劝他别太着迷游戏,应该好好工作的时候,他总是说,我是威威猫,猫打老鼠就是我的工作!   无话可说...      我们知道,打地鼠是一款经典小游戏,规则很简单:每隔一个时间段就会从地下冒出一只或多只地鼠,玩游戏的人要做的就是打地鼠。   假设:   1、每一个时刻我们只能打一只地鼠,并且打完以后该时刻出现的所有地鼠都会立

lele_pipi 487

状态压缩.种花小游戏

是时候填状压的坑了。HLUOJ486. 种花小游戏状压经典的例题题目描述植物大战僵尸这款游戏中,还有个特别有意思的赚钱方式——种花(能长金币的花)。 种出来的金币需要玩家点击才能得到,或者,玩家可以购买一只蜗牛来帮助捡金币。然而,蜗牛爬得 慢是众所周知的。所以,场上有若干金币时,蜗牛总是喜欢以最少的行程来捡走所有的金币。 现在告诉你场上n个金币所在位置的坐标,以及蜗牛所在位置,让你求出蜗牛捡走所有

a1035719430的博客 698

51nod 1450 闯关游戏

期望DP+思路

依然一笑作春温。 842

告别硬编码!用Python动态规划与回溯算法通杀‘数邻’和‘多米诺骨牌’类网页小游戏

本文介绍如何利用Python动态规划与回溯算法自动求解‘数邻’和‘多米诺骨牌’类网页小游戏。通过详细讲解算法设计、数据结构建模及性能优化技巧,帮助开发者快速掌握通用解谜方案,实现游戏自动化。文章还涵盖Selenium网页交互、并行计算优化等实用技术,适用于各类逻辑解谜游戏开发。

weixin_32244597的博客 315

【笔试】4399

自己总结,答案不一定对,代码也没验证。

?的博客 237

《中学生计算机程序算法入门例题精析与训练》题单

《中学生计算机程序算法入门例题精析与训练》题单

青少年趣味编程 535
上一篇: 第 k 小(优先队列)
下一篇: 拼三角(暴力dfs跑组合)
郭晋龙
博客等级 码龄6年 940粉丝 449原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郭晋龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值