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

相关推荐
全栈练习生13 小时前
AI安全与红队测试
python·ai
tomwang032213 小时前
路径优化建模、优化算法分类及工程化小结
算法·数学建模·分类
小羊没烦恼!13 小时前
Ajax与JSON的一些总结
android·java·前端·数据库·mysql·算法·okhttp
费曼学习法13 小时前
把「发送成功」当「送达」?我排查 IM 长消息被静默吞掉的完整过程
python·ai编程·自动化运维
鸽鸽程序猿13 小时前
【项目】【在线判题系统】b端题目增删改
开发语言·python
NetX行者14 小时前
Python 工程化入门:从脚本到规范的 Python 项目结构
网络·python
2501_9269783314 小时前
人机通信协议--人和机器之间的交互想象
人工智能·经验分享·算法·ai写作
行者全栈架构师14 小时前
【鸿蒙心迹】互动卡片全链路——把核心功能放到桌面(FormKit 实战)(HarmonyOS 7.x)
前端·算法·架构
MasonYyp14 小时前
asyncio并发协程
python
无定义_14 小时前
10.11日常训练
算法