华为非AI方向笔试 7月24号 真题 【地宫探宝】
地宫探宝(C/Py/Java/Js/Go)题解华为笔试真题 7月24号 非AI方向第三题 300分题型题目内容你在玩地宫探宝游戏地宫中每块地砖上都有不同价值的财宝每回合你有三种走法移动到下一块地砖跳过下一块地砖移动到第二块地砖跳过下面的第一、第二块地砖移动到第三块地砖请在回合数耗尽前携带最多的财宝逃离地宫。设定逃离失数回合数耗尽仍未到达最后一块地砖起点在地宫之外目的地是最后一块地砖自动拾取落脚地砖上的财宝地砖按照直线排列输入描述nnn地砖个数取值[5,10000][5,10000][5,10000]mmm回合数上限取值[2,5000]nnn个整数空格分割表示每块地砖上财宝价值取值[0,5][0,5][0,5]注意所有的输入均为整数用空格分割题目保证输入合法无需校验输入输出描述输出携带的财宝总价要求找到财宝总价最大值如无法逃离则返回−1-1−1样例1输入5 3 1 2 1 1 3输出6说明第一行有5块地砖要求3步逃离 第二行5个整数分别表示地砖上的财宝价值最优走法 第一步第二块地砖拾取价值为2的财宝 第二步第三块或第四块拾取价值为1的财宝 第三步第五块地砖拾取价值为3的财宝财宝价值共计6样例2输入10 3 0 0 3 1 2 3 0 0 0 0输出-1说明回合数是3最大移动距离是9无法在回合数耗尽前逃离题解思路思路:动态规划移动过程中存在两个状态当前所处位置当前已用回合通过可定义状态数组dp[i][j]表示使用i回合到达j能获得的最大财宝初始化全部设置为-INF表示不可达对第一轮进行初始化第一次可以走1格到达02格到达13格到达2因此设置dp[1][0]a[0], dp[1][1] a[1], dp[1][2] a[2]枚举轮数为[2,m]进行状态转移对于当前dp[i][j]j位置在上轮可达情况下的状态转移为走一步dp[i1][j 1] max(dp[i1][j 1], dp[i][j] a[j1])走一步dp[i1][j 2] max(dp[i1][j 2], dp[i][j] a[j2])走一步dp[i1][j 3] max(dp[i1][j 3], dp[i][j] a[j3])按照上述如果每一轮n-1位置可达更新记录能取得的最大值。同时考虑到状态转移只发生在上一轮和当前轮可采用滚动数组pre,cur进行空间压缩。上述代码平均时间复杂度为O(nm)C#includebits/stdc.husingnamespacestd;intmain(){ios_base::sync_with_stdio(false);cin.tie(nullptr);intn,m;cinnm;vectorintvalue(n);for(inti0;in;i){cinvalue[i];}// 无法逃离if(m*3n){cout-1;return0;}// 不可达标志constintNEG-1e9;// pre上回合 cur当前回合 到达i能获得的最大价值vectorintpre(n,NEG),cur(n,NEG);if(n1)pre[0]value[0];if(n2)pre[1]value[1];if(n3)pre[2]value[2];intansNEG;ansmax(ans,pre[n-1]);// 枚举回合, 进行状态转移for(intstep2;stepm;step){fill(cur.begin(),cur.end(),NEG);// 枚举当前位置for(inti0;in;i){if(pre[i]NEG){continue;}// 枚举当前能走到的位置for(intd1;d3;d){intnxid;if(nxn){break;}cur[nx]max(cur[nx],pre[i]value[nx]);}}ansmax(ans,cur[n-1]);swap(pre,cur);}coutans;return0;}javaimportjava.util.*;publicclassMain{publicstaticvoidmain(String[]args){ScannerscnewScanner(System.in);intnsc.nextInt();intmsc.nextInt();int[]valuenewint[n];for(inti0;in;i){value[i]sc.nextInt();}// 无法逃离if(m*3n){System.out.println(-1);return;}// 不可达标志finalintNEG-1000000000;// pre上回合cur当前回合到达i能获得的最大价值int[]prenewint[n];int[]curnewint[n];Arrays.fill(pre,NEG);Arrays.fill(cur,NEG);if(n1)pre[0]value[0];if(n2)pre[1]value[1];if(n3)pre[2]value[2];intansNEG;ansMath.max(ans,pre[n-1]);// 枚举回合进行状态转移for(intstep2;stepm;step){Arrays.fill(cur,NEG);// 枚举当前位置for(inti0;in;i){if(pre[i]NEG){continue;}// 枚举当前能走到的位置for(intd1;d3;d){intnxid;if(nxn){break;}cur[nx]Math.max(cur[nx],pre[i]value[nx]);}}ansMath.max(ans,cur[n-1]);int[]temppre;precur;curtemp;}System.out.println(ans);}}pythonn,mmap(int,input().split())valuelist(map(int,input().split()))# 无法逃离ifm*3n:print(-1)exit()# 不可达标志NEG-10**9# pre上回合 cur当前回合 到达i能获得的最大价值pre[NEG]*n cur[NEG]*nifn1:pre[0]value[0]ifn2:pre[1]value[1]ifn3:pre[2]value[2]ansNEG ansmax(ans,pre[n-1])# 枚举回合进行状态转移forstepinrange(2,m1):cur[NEG]*n# 枚举当前位置foriinrange(n):ifpre[i]NEG:continue# 枚举当前能走到的位置fordinrange(1,4):nxidifnxn:breakcur[nx]max(cur[nx],pre[i]value[nx])ansmax(ans,cur[n-1])pre,curcur,preprint(ans)javascriptconstreadlinerequire(readline);constrlreadline.createInterface({input:process.stdin,output:process.stdout});constinput[];rl.on(line,(line){input.push(line);});rl.on(close,(){const[n,m]input[0].split( ).map(Number);constvalueinput[1].split( ).map(Number);// 无法逃离if(m*3n){console.log(-1);return;}// 不可达标志constNEG-1000000000;// pre上回合 cur当前回合 到达i能获得的最大价值letprenewArray(n).fill(NEG);letcurnewArray(n).fill(NEG);if(n1)pre[0]value[0];if(n2)pre[1]value[1];if(n3)pre[2]value[2];letansNEG;ansMath.max(ans,pre[n-1]);// 枚举回合进行状态转移for(letstep2;stepm;step){cur.fill(NEG);// 枚举当前位置for(leti0;in;i){if(pre[i]NEG){continue;}// 枚举当前能走到的位置for(letd1;d3;d){constnxid;if(nxn){break;}cur[nx]Math.max(cur[nx],pre[i]value[nx]);}}ansMath.max(ans,cur[n-1]);lettemppre;precur;curtemp;}console.log(ans);});Gopackagemainimport(bufiofmtos)funcmax(a,bint)int{ifab{returna}returnb}funcmain(){in:bufio.NewReader(os.Stdin)varn,mintfmt.Fscan(in,n,m)value:make([]int,n)fori:0;in;i{fmt.Fscan(in,value[i])}// 无法逃离ifm*3n{fmt.Println(-1)return}// 不可达标志constNEG-1000000000// pre上回合 cur当前回合 到达i能获得的最大价值pre:make([]int,n)cur:make([]int,n)fori:0;in;i{pre[i]NEG cur[i]NEG}ifn1{pre[0]value[0]}ifn2{pre[1]value[1]}ifn3{pre[2]value[2]}ans:NEG ansmax(ans,pre[n-1])// 枚举回合进行状态转移forstep:2;stepm;step{fori:0;in;i{cur[i]NEG}// 枚举当前位置fori:0;in;i{ifpre[i]NEG{continue}// 枚举当前能走到的位置ford:1;d3;d{nx:idifnxn{break}cur[nx]max(cur[nx],pre[i]value[nx])}}ansmax(ans,cur[n-1])pre,curcur,pre}fmt.Println(ans)}

相关新闻

AntiDupl.NET:告别重复图片烦恼,智能清理您的数字相册

AntiDupl.NET:告别重复图片烦恼,智能清理您的数字相册

AntiDupl.NET:告别重复图片烦恼,智能清理您的数字相册 【免费下载链接】AntiDupl A program to search similar and defect pictures on the disk 项目地址: https://gitcode.com/gh_mirrors/an/AntiDupl 您是否曾经面对电脑里堆积如山的照片感到…

2026/9/22 2:22:43 阅读更多 →
Pixelle-Video:一句话生成专业短视频的终极指南

Pixelle-Video:一句话生成专业短视频的终极指南

Pixelle-Video:一句话生成专业短视频的终极指南 【免费下载链接】Pixelle-Video 🚀 AI 全自动短视频引擎 | AI Fully Automated Short Video Engine 项目地址: https://gitcode.com/GitHub_Trending/pi/Pixelle-Video 你是否曾经想过制作一个精彩…

2026/9/29 19:19:55 阅读更多 →
研究背景相关内容梳理与核心要素解析

研究背景相关内容梳理与核心要素解析

搞科研的大家!找英文文献依然是科研路上最头疼的一道坎儿吧? 尤其是现在AI工具层出不穷,老工具也在不断升级,选对平台能省下大把时间。今天我给大家盘点8个好用的英文文献检索网站,涵盖传统权威平台 新一代AI智能工具…

2026/10/5 5:05:22 阅读更多 →

最新新闻

尤克里里新手必看:从选琴到指弹的完整资源清单与避坑指南

尤克里里新手必看:从选琴到指弹的完整资源清单与避坑指南

一把四根弦的小琴为什么能让人上头?我身边不少朋友刷了几个弹唱视频之后冲动下单,然后琴在墙角吃灰半年。问就是“和弦按不响”“扫弦像杀鸡”“谱子找不到”。说实话,尤克里里资源这块,网上零零碎碎的东西特别多,但真…

2026/10/7 5:50:23 阅读更多 →
GaN与SiC选型实战:宽禁带半导体应用场景与设计要点

GaN与SiC选型实战:宽禁带半导体应用场景与设计要点

1. 宽禁带半导体的两条路线之争功率半导体圈子里,氮化镓和碳化硅的讨论热度这几年一直没降过。但凡参加一场电源技术研讨会,或者翻一翻充电头拆解报告,这两个词必然反复出现。很多刚入行的朋友会直接问:到底该学哪个?选…

2026/10/7 5:50:23 阅读更多 →
提示工程实战笔记:指令设计、上下文与输出控制全解析

提示工程实战笔记:指令设计、上下文与输出控制全解析

在 LLM 大模型的实际落地里,提示工程(Prompt Engineering)是门槛最低、见效最快、但又最容易被人低估的环节。模型选得再好,Prompt 写得稀碎,输出照样没法看;反过来,一套结构清晰的 Prompt 往往…

2026/10/7 5:50:23 阅读更多 →
TL494降压可调电源设计:从原理到5A恒压恒流实战

TL494降压可调电源设计:从原理到5A恒压恒流实战

1. TL494到底是一颗什么样的芯片1.1 从一颗"老将"芯片说起TL494算得上是电源圈里的常青树了。我第一次接触它是在一台老式ATX电源的维修中,当时拆开外壳看到这颗16脚的DIP芯片,旁边围着一圈电阻电容和两个TO-220封装的开关管,整个P…

2026/10/7 5:50:23 阅读更多 →
OmniGame:基于WebRTC P2P与Shadow DOM的零依赖网页游戏引擎

OmniGame:基于WebRTC P2P与Shadow DOM的零依赖网页游戏引擎

1. 项目概述:为什么一个网页小游戏引擎需要“从零依赖”和“WebRTC P2P”?你有没有试过点开一个网页链接,3秒内就玩上《太空射击》或《节奏奶蛙》,全程没弹广告、不装插件、不等加载条,甚至关掉服务器后游戏还能继续—…

2026/10/7 5:50:23 阅读更多 →
Next.js + LangGraph.js:简历AI Agent全栈落地实践

Next.js + LangGraph.js:简历AI Agent全栈落地实践

先交代个背景:我接手这个简历工具项目的时候,团队已经用 FastAPI LangChain 跑通了一版原型,能根据用户输入生成简历片段。但真要拿出去给用户用,问题全冒出来了——前端要频繁改交互、流式输出总是断、每个用户的简历版本状态没…

2026/10/7 5:49:23 阅读更多 →

日新闻

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:01:58 阅读更多 →
用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:02:00 阅读更多 →
芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:02:00 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 7:15:40 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 5:29:09 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 6:26:51 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 8:21:32 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 4:21:51 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 1:18:13 阅读更多 →