【华为OD机试真题 C++】1060 - 翻牌求最大分 | 机试题+算法思路+考点+代码解析

news/2025/1/12 1:48:04/

文章目录

    • 一、题目
      • 🔸题目描述
      • 🔸输入输出
      • 🔸样例1
    • 二、代码参考
  • 作者:KJ.JK


🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈
 
🍂个人博客首页: KJ.JK
 
💖系列专栏:华为OD机试真题(C++)

🍂专栏介绍: 华为OD机试真题汇总,使用C++来进行解析解答实现,帮助大家更好的AC题目,分享各种解题思路,让大家更好通过机试,持续更新中,欢迎大家订阅


一、题目


🔸题目描述

给出n个牌数,在-10到100之间,求最大得分。
 
规则如下:连续翻牌,如果选当前牌,则总得分等于上一次翻牌总得分加上当前牌的数字
 
如果当前总得分小于它前三次的总得分的话,那此次不翻牌,并且总得分就等于它前三次的得分。
 
1到3次翻牌数如果小于0的话就取0。
 
例子:1,-5,-6,4,7,2,-2
 
(1) 1大于零翻牌
(2) -5加上1忏0不翻结果为0
(3) -6 加上0小于0不翻结果为0
(4) 4加上0大于0 (1) 翻牌结果为4
(5) 7加上4大于0 (2) 翻牌结果为11
(6) 2加上11大于0 (3) 翻牌结果为13
(7) -2加上14于4 (4)翻牌结果为11


🔸输入输出

输入

 
输出


🔸样例1

输入
1-5-6472-2输出
11

二、代码参考

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;int main() {string input;getline(cin, input);vector<int> nums;size_t pos = 0;while ((pos = input.find(",")) != string::npos) {nums.push_back(stoi(input.substr(0, pos)));input.erase(0, pos + 1);}nums.push_back(stoi(input));int n = nums.size();vector<int> dp(n);for (int i = 0; i < n; i++) {if (i == 0) {dp[0] = max(0, nums[0]);} else if (i < 3) {dp[i] = max(0, dp[i - 1] + nums[i]);} else {int prev_sum = dp[i - 3] + nums[i - 2] + nums[i - 1] + nums[i];dp[i] = max(dp[i - 1] + nums[i], prev_sum);}}cout << dp[n - 1] << endl;return 0;
}

作者:KJ.JK

文章对你有所帮助的话,欢迎给个赞或者 star,你的支持是对作者最大的鼓励,不足之处可以在评论区多多指正,交流学习


http://www.ppmy.cn/news/47135.html

相关文章

蓝精灵协会 (The Smurfs‘ Society) 宣布与著名艺术家展开一系列的合作,打造传奇 PFP 系列

4 月 18 日&#xff0c;The Smurfs Society 将推出第一个由 Smurfs 品牌支持的官方 PFP 系列。该系列建立在链上游戏的基础之上&#xff0c;该游戏聚集了超过 85,000 名玩家&#xff0c;并在设计、创意和与著名艺术家的合作方面设立了新标准。 而最近&#xff0c;蓝精灵官方&am…

考验大家指针功底的时候到了:请问如何理解 (int*)1 + 1 ?

来&#xff0c;猜猜看&#xff0c;这里的执行结果是什么&#xff1f; 这是今天课上的一道理解题&#xff0c;给大家一点点思考时间。 &#xff08;心里有答案了再往下滑哦&#xff09; 5 4 3 2 1 . 答案是&#xff0c;报warning&#xff01;因为%d不是用来输出指针的哈…

String a = new String(“abc“); 创建了几个对象?String a = “abc“; 呢?

String a new String(“abc”); 创建了几个对象&#xff1f;String a “abc”; 呢&#xff1f; 答案&#xff1a;String a new String(“abc”); 创建了1个或2个对象&#xff1b;String a “abc”; 创建了0个或1个都对象 String a new String(“abc”); 创建过程 首先在…

Java基础(十六):String的常用API

Java基础系列文章 Java基础(一)&#xff1a;语言概述 Java基础(二)&#xff1a;原码、反码、补码及进制之间的运算 Java基础(三)&#xff1a;数据类型与进制 Java基础(四)&#xff1a;逻辑运算符和位运算符 Java基础(五)&#xff1a;流程控制语句 Java基础(六)&#xff1…

【Zblog建站】搭建属于自己的博客网站,并内网穿透实现公网访问

文章目录 1. 前言2. Z-blog网站搭建2.1 XAMPP环境设置2.2 Z-blog安装2.3 Z-blog网页测试2.4 Cpolar安装和注册 3. 本地网页发布3.1. Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1. 前言 想要成为一个合格的技术宅或程序员&#xff0c;自己搭建网站制作网页是绕…

小鹏开启架构造车,冲击年销300万台入场券

作者 | 张祥威 编辑 | 德新 2023上海车展开始前&#xff0c;小鹏汽车发布了新一代技术架构SPEA 2.0扶摇。 扶摇是一次重要转向。基于这一新架构&#xff0c;小鹏的整车综合研发成本可以降低50%&#xff0c;接下来将有10多款新车密集投放。 大众进入电动化时代后&#xf…

无线洗地机哪款性价比高?高性价比的洗地机分享

虽说现在市面上清洁工具很多&#xff0c;但是要说清洁效果最好的&#xff0c;肯定非洗地机莫属。它集合了吸&#xff0c;洗&#xff0c;拖三大功能&#xff0c;干湿垃圾一次清理&#xff0c;还能根据地面的脏污程度进行清洁&#xff0c;达到极致的清洁效果&#xff0c;省时省力…

东北大学|材料科学基础名词解释|第三章 界面|第四章强化和增韧|第五章材料的变形和断裂

目录 第三章 界面 第四章强化和增韧 第五章材料的变形和断裂 第三章 界面 1、晶界&#xff1a;晶体内点阵相同而取向不同的两个晶粒之间的相邻边界。 2、亚晶界&#xff1a;晶体内点阵相同而取向不同的两个亚晶粒之间的相邻边界。小角度晶界的一种&#xff0c;位相差小于3…