【蓝桥杯集训·每日一题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
如果有更多问题或需要进一步的帮助,可以在评论区留言讨论哦!
如果喜欢的话,请给博主点个关注 谢谢

相关推荐
暴风鱼划水16 小时前
算法题(Python)数组篇 | 6.区间和
python·算法·数组·区间和
No0d1es16 小时前
2025年第十六届蓝桥杯青少组省赛 C++编程 中级组真题
c++·青少年编程·蓝桥杯·省赛
Derrick__116 小时前
Web Js逆向——加密参数定位方法(Hook)
python·js
zl_vslam16 小时前
SLAM中的非线性优-3D图优化之轴角在Opencv-PNP中的应用(一)
前端·人工智能·算法·计算机视觉·slam se2 非线性优化
是苏浙17 小时前
零基础入门C语言之C语言实现数据结构之顺序表应用
c语言·数据结构·算法
南汐汐月17 小时前
重生归来,我要成功 Python 高手--day33 决策树
开发语言·python·决策树
lzjava202417 小时前
Spring AI使用知识库增强对话功能
人工智能·python·spring
B站_计算机毕业设计之家17 小时前
深度血虚:Django水果检测识别系统 CNN卷积神经网络算法 python语言 计算机 大数据✅
python·深度学习·计算机视觉·信息可视化·分类·cnn·django
Q_Q51100828517 小时前
python+django/flask的校园活动中心场地预约系统
spring boot·python·django·flask·node.js·php
lkbhua莱克瓦2417 小时前
Java基础——常用算法3
java·数据结构·笔记·算法·github·排序算法·学习方法