【寒假每日一题】洛谷 P6625 [省选联考 2020 B 卷] 卡牌游戏

news/2025/2/13 20:48:31/

题目链接:P6625 [省选联考 2020 B 卷] 卡牌游戏 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

题目描述

轩轩某天想到了一个卡牌游戏,游戏规则如下:

1. 初始时轩轩的手中有自左向右排成一排的 n 张卡牌,每张卡牌上有一个整数分值。
2. 接下来,轩轩每次可以选取卡牌序列最左边的连续若干张卡牌(至少 2 张),将它们替换为一张新卡牌。新卡牌将插入到序列的最左端,它的分值为本次操作中被替换掉的卡牌的分值之和。
3. 初始时轩轩总分为 0,每执行一次卡牌替换操作,新卡牌的分值将加到总分中。当序列长度为 1 时游戏结束,轩轩也可以在任意时刻结束游戏。

现在给出序列中各个卡牌的分值,请你来帮助轩轩计算他能够获得的最高总分是多少?

输入格式

第一行一个正整数 n,代表卡牌的数目。

接下来一行 n 个以空格分隔的整数,第 i 个数字 ai 代表自左向右第 i 张卡牌的分值。

输出格式

仅一行一个整数表示答案。

样例 #1

样例输入 #1

3
2 -1 2

样例输出 #1

4

样例 #2

样例输入 #2

7
-4 3 0 7 -3 -5 -3

样例输出 #2

9

提示

样例解释 1

最优策略为,首先选择最左侧的两张卡牌,总分增加 2 + (-1) = 1。此时轩轩选择的两张卡牌被替换为一张分值为 1 的卡牌,且被放入序列最左侧,此时自左向右卡牌的分值为 1 和 2。

接下来选择当前序列中所有卡牌,总分增加 1 + 2 = 3,总分为 4。此时轩轩选择的两张卡牌被替换为一张分值为 3 的卡牌,且被放入序列最左侧,此时序列中只有一张分值为 3 的卡牌,游戏结束。

样例解释 2

最优策略为,首先选择最左侧的四张卡牌,总分增加  (-4) + 3 + 0 + 7 = 6。此时轩轩选择的四张卡牌被替换为一张分值为 6 的卡牌,且被放入序列最左侧,此时自左向右卡牌的分值为 6, -3, -5, -3。

再选择最左侧的两张卡牌,总分增加 6 + (-3) = 3,总分为 9。此时轩轩选择的两张卡牌被替换为一张分值为 3 的卡牌,且被放入序列最左侧,此时自左向右卡牌的分值为 3, -5, -3。

此时无论如何操作均无法使总分继续增大,轩轩选择结束游戏。

数据范围与约定

测试点 1 ~ 6 满足:1 <= n <= 16, |ai| <= 100。

测试点 7 ~ 12 满足:1 <= n <= 10^3, |ai| <= 100。

测试点 13 ~ 20 满足:1 <= n <= 10^5, |ai| <= 10^5。

AC code:

#include<iostream>
#include<algorithm>
#include<vector>using namespace std;typedef long long ll;int main()
{ll n;cin>>n;vector<ll> a(n + 1);for(ll i = 1 ; i <= n ; i ++)cin>>a[i];vector<ll> preSum(n + 1);for(ll i = 1 ; i <= n ; i ++)preSum[i] = preSum[i - 1] + a[i];ll res = 0;for(ll i = 2 ; i <= n ; i ++){if(preSum[i] > 0){res += preSum[i];}}cout<<res;return 0;
}

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

相关文章

【web安全】同源策略与跨域

引言 同源策略与跨域是web安全中非常基础的知识点&#xff0c;并且&#xff0c;有的web漏洞是和同源策略息息相关的&#xff0c;因此我们在这里用问答的方式介绍并理解一下同源策略与跨域的相关知识。 同源策略与跨域相关问题。 什么是同源&#xff0c;什么是跨域&#xff1…

AcWing蓝桥杯AB组辅导课08、数论

文章目录前言一、数论例题例题1&#xff1a;AcWing 1246. 等差数列&#xff08;最大公约数&#xff0c;第十届蓝桥杯省赛CB第7题&#xff09;分析题解&#xff1a;最大公约数例题2&#xff1a;AcWing 1295. X的因子链&#xff08;算数基本定理、欧拉筛选&#xff0c;多重集合排…

蓝桥杯重点(C/C++)(随时更新,更新时间:2023.1.27)

点关注不迷路&#xff0c;欢迎推荐给更多人 目录 1 技巧 1.1 取消同步&#xff08;节约时间&#xff0c;甚至能多骗点分&#xff0c;最好每个程序都写上&#xff09; 1.2 万能库&#xff08;可能会耽误编译时间&#xff0c;但是省脑子&#xff09; 1.3 蓝桥杯return 0…

网络— — 二层交换机

网络— — 二层交换机 1 交换机端口 g0/3 g&#xff1a;1000M/s0&#xff1a;模块号3&#xff1a;接口号 每个端口网速&#xff1a; Ethernet 10M/s FastEthernet 100M/s GigabitEthernet 1000M/s TenGigabitEthernet 10000Mb/s 2 数据链路层&#xff08;2层&#xff09; Data…

Redis缓存污染了怎么办?

我们应用Redis缓存时&#xff0c;如果能缓存会被反复访问的数据&#xff0c;那就能加速业务应用的访问&#xff0c;但是&#xff0c;如果发生了缓存污染&#xff0c;那么&#xff0c;缓存对业务应用的加速作用就减少了。 在一些场景下&#xff0c;有些数据被访问的次数非常小&…

实现自己的数据库二

一 前言上次数据库支持了一个测试表的插入和查询&#xff0c;但是数据全部保存到磁盘中的&#xff0c;如果程序重启后&#xff0c;数据都会全部丢了&#xff0c;所以需要持久化到磁盘上&#xff0c;像sqlite一样&#xff0c;简单的将数据库的数据保存到一个磁盘文件上。二 实现…

【Quicker】您的指尖工具箱

在日常学习和工作中我们常常用到各种各样的小工具&#xff0c;比如&#xff1a;截图并编辑、取色、文字识别、公式识别等等.   倘若这每一项功能都下载一个程序&#xff0c;则会显得非常冗杂。因此&#xff0c;用一个工具箱将这些功能集合起来&#xff0c;则是一个不错的解决…

详解Windows通过命令行查看电脑连接过的WIFI密码

CONTENT打开命令行进入命令行下的netsh工具查看连接过的WiFi名称指定WiFi名称查看密码在Windows操作系统中&#xff08;PS&#xff1a;Windows Vista及以后的Windows系统&#xff09;可以通过命令行工具netsh查看和更改电脑的无线连接设置&#xff0c;包括WiFi。本篇博客将详细…