AcWing刷题-游戏

游戏


DP

python 复制代码
l = lambda: [int(x) for x in input().split()]

n = l()[0]
w = [0]
while len(w) <= n:
	w += l()

s = [0] * (n + 1)
for i in range(1, n + 1): 
    s[i] = s[i - 1] + w[i]

f = [[0] * (n + 1) for _ in range(n + 1)]

for i in range(1, n + 1): 
    f[i][i] = w[i]

for length in range(2, n + 1):
  for i in range(1, n - length + 2):
    j = i + length - 1
    # 取最优解
    f[i][j] = max(
      s[j] - s[i - 1] - f[i + 1][j],
      s[j] - s[i - 1] - f[i][j - 1]
    )

print(f[1][n], s[n] - f[1][n])
相关推荐
CQU_JIAKE1 分钟前
9.30【A】
算法
DanCheng-studio7 分钟前
智能科学与技术毕设易上手题目建议
python·毕业设计·毕设
醇氧9 分钟前
nohup 后台启动 uvicorn(仅测试 / 临时运行)
linux·运维·网络·python·python3.11
INGNIGHT16 分钟前
1897 · 会议室 3(扫描线)
数据结构·算法
All for pursuit.18 分钟前
【贪心-2】253.会议室 II
数据结构·c++·算法·leetcode
垆边人似月.19 分钟前
华为机考题(一):质数因子
算法·华为
开开心心_Every38 分钟前
文件夹批量创建工具支持同级和多层级
运维·服务器·游戏·jupyter·智能手机·pdf·postman
2601_957883841 小时前
2026年9月:专业解决雷神笔记本维修难题
python·电脑
迷途之人不知返1 小时前
算法系列5:位运算
算法
牢姐与蒯1 小时前
c++加餐之位图
c++·算法·哈希