【蓝桥杯集训·每日一题2025】 AcWing 6118. 蛋糕游戏 python

6118. 蛋糕游戏

Week 1
2月19日

贝茜和埃尔茜发现了一行 N N N 个蛋糕( N N N 为偶数),大小依次为 a 1 , a 2 , ... , a N a_1,a_2,...,a_N a1,a2,...,aN。

两头奶牛都想吃到尽可能多的蛋糕。

但是,作为非常文明的奶牛,她们决定玩一个游戏来分割蛋糕!

游戏在两头奶牛之间轮流进行回合。

每个回合进行以下两者之一:

  1. 贝茜选择两个相邻的蛋糕并将它们堆叠起来,制造大小为两者大小之和的一个新蛋糕。
  2. 埃尔茜选择最左边或最右边的蛋糕藏起来。

当只剩下一个蛋糕时,贝茜吃掉它,而埃尔茜吃掉她藏起来的所有蛋糕。

如果两头奶牛都采取最优策略以最大化她们吃到的蛋糕量,并且贝茜先进行回合,那么每头奶牛将会吃到多少蛋糕?

输入格式

每个测试点包含 T T T 个独立的测试用例。

每个测试用例的格式如下。

第一行包含 N N N。

下一行包含 N N N 个空格分隔的整数 a 1 , a 2 , ... , a N a_1,a_2,...,a_N a1,a2,...,aN。

输出格式

对于每个测试用例,输出一行,包含 b b b 和 e e e,表示贝茜和埃尔茜在两头奶牛都采取最优策略的情况下分别吃到的蛋糕量。

数据范围

1 ≤ T ≤ 10 1 \le T \le 10 1≤T≤10,
2 ≤ N ≤ 5 × 1 0 5 2 \le N \le 5 \times 10^5 2≤N≤5×105,
1 ≤ a i ≤ 1 0 9 1 \le a_i \le 10^9 1≤ai≤109,

输入保证一个测试点中的所有 N N N 之和不超过 1 0 6 10^6 106。

输入样例:
复制代码
2
4
40 30 20 10
4
10 20 30 40
输出样例:
复制代码
60 40
60 40
样例解释

对于第一个测试用例,在最优策略下,

  1. 贝茜将堆叠中间两个蛋糕。现在蛋糕的大小为 [ 40 , 50 , 10 ] [40,50,10] [40,50,10]。
  2. 埃尔茜将吃掉最左边的蛋糕。现在剩余的蛋糕的大小为 [ 50 , 10 ] [50,10] [50,10]。
  3. 贝茜堆叠剩余的两个蛋糕。

贝茜将吃到 30 + 20 + 10 = 60 30+20+10=60 30+20+10=60 的蛋糕,而埃尔茜将吃到 40 40 40 的蛋糕。

第二个测试用例是第一个测试用例反转的情况,因此答案相同。


思路:

贪心 + 前缀和

【算法】 一维前缀和 python

code:

python 复制代码
t = int(input())
for _ in range(t):
    n = int(input())
    a = list(map(int, input().split()))
    pre_sum = [0] * (n + 1)
    for i in range(1, n + 1):
        pre_sum[i] = pre_sum[i - 1] + a[i - 1]

    ans = float('inf')
    len = n // 2 + 1
    for i in range(len, n + 1):
        ans = min(ans, pre_sum[i] - pre_sum[i - len])

    print(ans, sum(a) - ans)

END
如果有更多问题或需要进一步的帮助,可以在评论区留言讨论哦!
如果喜欢的话,请给博主点个关注 谢谢

相关推荐
仙人掌_lz12 分钟前
微调ModernBERT为大型语言模型打造高效“过滤器”
人工智能·python·ai·语言模型·自然语言处理·bert
小众AI15 分钟前
fastmcp: 更好用的 MCP Python 框架
开发语言·人工智能·python
cdut_suye19 分钟前
【Linux系统】从零开始构建简易 Shell:从输入处理到命令执行的深度剖析
java·linux·服务器·数据结构·c++·人工智能·python
-qOVOp-21 分钟前
zst-2001 历年真题 设计模式
java·算法·设计模式
小屁孩大帅-杨一凡24 分钟前
Azure Document Intelligence
后端·python·microsoft·flask·azure
evolution_language37 分钟前
LintCode第68题-二叉树的前序遍历,第67题-二叉树的后序遍历
数据结构·算法·新手必刷编程50题
passionSnail1 小时前
《用MATLAB玩转游戏开发:从零开始打造你的数字乐园》基础篇(2D图形交互)-俄罗斯方块:用旋转矩阵打造经典
算法·matlab·矩阵·游戏程序·交互
yxc_inspire1 小时前
C++STL在算法竞赛中的应用详解
c++·算法·stl
James. 常德 student1 小时前
leetcode-hot-100(哈希)
算法·leetcode·哈希算法
金融小师妹1 小时前
量化解析美英协议的非对称冲击:多因子模型与波动率曲面重构
大数据·人工智能·算法